爬网入门:JAVA抓取网站网页内容

news/2024/5/1 13:24:45/文章来源:https://blog.csdn.net/stevenbill/article/details/83909251
最近在用JAVA研究下爬网技术,呵呵,入了个门,把自己的心得和大家分享下
以下提供二种方法,一种是用apache提供的包.另一种是用JAVA自带的.
代码如下:


// 第一种方法
//这种方法是用apache提供的包,简单方便
//但是要用到以下包:commons-codec-1.4.jar
// commons-httpclient-3.1.jar
// commons-logging-1.0.4.jar


public static String createhttpClient(String url, String param) {
HttpClient client = new HttpClient();
String response = null;
String keyword = null;
PostMethod postMethod = new PostMethod(url);


// try {
// if (param != null)
// keyword = new String(param.getBytes("gb2312"), "ISO-8859-1");
// } catch (UnsupportedEncodingException e1) {
// // TODO Auto-generated catch block
// e1.printStackTrace();
// }

// NameValuePair[] data = { new NameValuePair("keyword", keyword) };
// // 将表单的值放入postMethod中
// postMethod.setRequestBody(data);
// 以上部分是带参数抓取,我自己把它注销了.大家可以把注销消掉研究下

try {
int statusCode = client.executeMethod(postMethod);
response = new String(postMethod.getResponseBodyAsString()
.getBytes("ISO-8859-1"), "gb2312");//这里要注意下 gb2312要和你抓取网页的编码要一样

String p = response.replaceAll("\\&[a-zA-Z]{1,10};", "")
.replaceAll("<[^>]*>", "");//去掉网页中带有html语言的标签
System.out.println(p);
} catch (Exception e) {

e.printStackTrace();
}
return response;

}

// 第二种方法
// 这种方法是JAVA自带的URL来抓取网站内容


public String getPageContent(String strUrl, String strPostRequest,
int maxLength) {
// 读取结果网页
StringBuffer buffer = new StringBuffer();
System.setProperty("sun.net.client.defaultConnectTimeout", "5000");
System.setProperty("sun.net.client.defaultReadTimeout", "5000");
try {
URL newUrl = new URL(strUrl);
HttpURLConnection hConnect = (HttpURLConnection) newUrl
.openConnection();
// POST方式的额外数据
if (strPostRequest.length() > 0) {
hConnect.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(hConnect
.getOutputStream());
out.write(strPostRequest);
out.flush();
out.close();
}
// 读取内容

BufferedReader rd = new BufferedReader(new InputStreamReader(
hConnect.getInputStream()));
int ch;
for (int length = 0; (ch = rd.read()) > -1
&& (maxLength <= 0 || length < maxLength); length++)
buffer.append((char) ch);
String s = buffer.toString();
s.replaceAll("\\&[a-zA-Z]{1,10};", "").replaceAll("<[^>]*>", "");
System.out.println(s);

rd.close();
hConnect.disconnect();
return buffer.toString().trim();
} catch (Exception e) {
// return "错误:读取网页失败!";
//
return null;


}
}

然后写个测试类:


public static void main(String[] args) {

String url = "http://www.liuzm.com";
String keyword = "刘志猛博客";
createhttpClient p = new createhttpClient();
String response = p.createhttpClient(url, keyword); // 第一种方法
// p.getPageContent(url, "post", 100500);//第二种方法
}

呵呵,看看控制台吧,是不是把网页的内容获取了

http://blog.csdn.net/fzhlee/archive/2011/03/30/6288654.aspx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_739022.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET Core 中的SEO优化(1):中间件实现服务端静态化缓存

分享 最近在公司成功落地了一个用ASP.NET Core 开发前台的CMS项目&#xff0c;虽然对于表层的开发是兼容MVC5的&#xff0c;但是作为爱好者当然要用尽量多的ASP.NET Core新功能了。 背景 在项目开发的过程中&#xff0c;为了满足需求&#xff0c;还是有许多功能要自己“发明”&…

设计师工资低?10大网站助你快速涨1万身价

设计师中如何快速涨1万身价&#xff0c;这个是每个设计师都非常关注的问题&#xff0c;小编认为想要快速提升自己的身价&#xff0c;高效的工作效率是必不可少的。科学有效地提高单位时间内的工作效率&#xff0c;短期来看可以轻松避免不必要的加班&#xff0c;对于设计师个人和…

jira无法访问此网站_企业制作营销型网站时需注重哪些问题

相信所有企业在进行营销型网站建设时&#xff0c;都希望自己的网站能够达到最好的效果&#xff0c;这样企业才能在互联网当中获得更大的效果。但是在实际当中&#xff0c;虽然制作营销型网站的企业成千上万&#xff0c;然能够具备这样效果的网站却是微乎其微&#xff0c;最根本…

分享10个高质量纹理背景资源网站

纹理是网页设计中非常有用的视觉元素&#xff0c;常用于网站背景。今天&#xff0c;这篇文章与大家分享10个高质量纹理背景资源网站&#xff0c;在这些网站中有各种风格的背景资源&#xff0c;相信会有你喜欢的。 DinPattern Pattern8 Colorburned Alice Grafixx Brusheezy Pat…

Sharepoint学习笔记---如何在Sharepoint2010网站中整合Crystal Report水晶报表(显示数据 一)...

公司上马新的ERP系统&#xff0c;需要把以前开发的水晶报表结合新的ERP系统整合到Sharepoint2010中&#xff0c;以前曾经尝试在Sharepoint2010中整合水晶报表&#xff0c;但由于当时SAP公司还没推出64bit系统的相关Package&#xff0c;而我们的开发环境和生产环境均为Windows20…

网站服务器如何处理客户端请求,实际的Web服务器处理客户端请求的步骤分析

第一步——接受客户端连接接受一个客户端连接&#xff0c;或者如果不希望与这个客户端建立连接&#xff0c;就将其关闭。第二步——接收请求报文从网络中读取一条HTTP请求报文解析报文1. 解析请求行&#xff0c;查找请求方法、指定的资源标识符(URI)以及版本号&#xff0c;各项…

抓取一个连续的网页_做了这么久SEO优化,想必你很了解“网页快照”

在网站做SEO优化时&#xff0c;我们经常能接触到一个关键词就是“网页快照”&#xff0c;那么什么是网页快照呢?当搜索引擎在收录网站时&#xff0c;会对网页进行备份&#xff0c;存在自己的服务器缓存里&#xff0c;当用户在搜索引擎中点击“网页快照”链接时&#xff0c;搜索…

为什么wifi有些网站进不去_有些网站为什么不能访问

很多人会问一个简单的问题,网址失效,网站访问不了,网站打不开了,网站屏蔽了。 简单说一下网站打不开的几点问题,网站打不开一般分为三种: 1、网站关闭打不开 2、网站被Q打不开 3、网站被浏览器监测屏蔽打不开 其中第1是你如何都打不开的,因为网站关闭,网络上就不存在这…

网站镜像服务器,什么是网站镜像,什么又是恶意网站镜像?

原标题&#xff1a;什么是网站镜像&#xff0c;什么又是恶意网站镜像&#xff1f;什么是网站镜像&#xff1f;什么又是恶意网站镜像&#xff1f;什么是网站镜像 网站镜像指的是把相同的数据存放在不同的服务器&#xff0c;镜像网站可以及时同步主站数据&#xff0c;像主站的一面…

php 获取其他页面的cookie_cookie的网站统计相关知识

什么是 Cookie&#xff1f;Cookie 是您访问过的网站创建的文件&#xff0c;用于存储浏览信息&#xff0c;例如您的网站偏好设置或个人资料信息。共有两种类型的 Cookie&#xff1a;第一方 Cookie 是由地址栏中列出的网站域设置的 Cookie&#xff0c;而第三方 Cookie 来自在网页…

php用ajax对seo,原生JS实现Ajax通过POST方式与PHP进行交互的方法示

通过POST方式与PHP进行交互var xmlHttp; //定义XMLHttpRequest对象function createXmlHttpRequestObject(){if(window.ActiveXObject){ //如果在internet Explorer下运行try{xmlHttpnew ActiveXObject("Microsoft.XMLHTTP");}catch(e){xmlHttpfalse;}}else{try{ //如…

linux系统在pe下查看ip地址,pe下查看原系统ip的方法_网站服务器运行维护

linux查看php环境是否安装_网站服务器运行维护linux查看php环境是否安装的方法&#xff1a;1、执行【find / -name php.ini】命令&#xff0c;查看系统是否有php的配置文件&#xff1b;2、执行【netstat -ntpl】命令&#xff0c;查看9000端口是否在运行。pe下查看原系统ip的方法…

【转发】淘宝网采用什么技术架构来实现网站高负载的

淘宝网采用什么技术架构来实现网站高负载的 2012-11-15 12:30 佚名 转载字号&#xff1a;T|T下面就结合淘宝目前的一些底层技术框架以及自己的一些感触来说说如何构建一个可 伸缩&#xff0c;高性能&#xff0c;高可用性的分布式互联网应用。 AD&#xff1a;2013云计算架构师峰…

新浪微博html5模板,个人主题建站首选微博秀模板,仿新浪微博官网

很久之前就想弄这个仿微博的模板了&#xff0c;但是时间一直不允许&#xff0c;这不抽空弄出来了&#xff0c;主题简单明了&#xff0c;后台设置简单&#xff0c;无需复杂操作&#xff0c;比起以往的CMS主题要简单的多&#xff0c;太适合做个人博客的网站了&#xff0c;当然这不…

【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器(转)

出处:http://edisonchou.cnblogs.com/ 一、反向代理&#xff1a;Web服务器的“经纪人” 1.1 反向代理初印象 反向代理&#xff08;Reverse Proxy&#xff09;方式是指以代理服务器来接受internet上的连接请求&#xff0c;然后将请求转发给内部网络上的服务器&#xff0c;并将从…

大型网站系统架构分析大型网站系统架构分析

千万级的注册用户&#xff0c;千万级的帖子&#xff0c;nTB级的附件&#xff0c;还有巨大的日访问量&#xff0c;大型网站采用什么系统架构保证性能和稳定性&#xff1f; 首先讨论一下大型网站需要注意和考虑的问题。 数据库海量数据处理&#xff1a;负载量不大的情况下select、…

换服务器影响网站排名,换服务器对网站排名有影响吗?

很多站长朋友也许都会碰到这个问题&#xff0c;由于网站要备案从而要把数据搬移到其他服务器上去&#xff0c;都会先在网上搜索一下相关的信息&#xff0c;怕更换过后的服务器IP发生了更改&#xff0c;会影响百度蜘蛛的对网站的爬行&#xff0c;继而影响网站的收录和排名&#…

让你的网站免费支持 HTTPS 及 Nginx 平滑升级

为什么要使用 HTTPS ? 首先来说一下 HTTP 与 HTTPS 协议的区别吧&#xff0c;他们的根本区别就是 HTTPS 在 HTTP 协议的基础上加入了 SSL 层&#xff0c;在传输层对网络连接进行加密。简单点说在 HTTP 协议下你的网站是光着身子在奔跑&#xff0c;但到了 HTTPS 下你穿了一件衣…

PHP网站漏洞poc,ThinkPHP-5.0.23新的RCE漏洞测试和POC

TP5新RCE漏洞昨天又是周五&#xff0c;讨厌周五曝漏洞&#xff0c;还得又得加班&#xff0c;算了&#xff0c;还是先验证一波。新的TP5RCE&#xff0c;据说发现者因为上次的RCE&#xff0c;于是又审计了代码&#xff0c;结果发现的。TP5也成了万人轮啊。测试环境搭建windows下p…