通过JAVA的API可以顺利的抓取网络上的大部分指定的网页内容,现与大家分享一下这方法理解与心得。最简单的一种抓取方法就是:
URL url = new URL(myurl);
BufferedReader br = new BufferedReader(newInputStreamReader(url.openStream()));
String s = "";
StringBuffer sb = new StringBuffer("");
while ((s = br.readLine()) != null) {
i++;
sb.append(s+"\r\n");
}
这种方法抓取一般的网页应该没有问题,但当有些网页中存在一些嵌套的redirect连接时,它就会报Server redirected too many times这样的错误,这是因为此网页内部又有一些代码是转向其它网页的,循环过多导致程序出错。如果只想抓取本URL中的网页内容,而不愿意让它有其它的网页跳转,可以用以下的代码。
URL urlmy = new URL(myurl);
HttpURLConnection con = (HttpURLConnection) urlmy.openConnection();
con.setFollowRedirects(true);
con.setInstanceFollowRedirects(false);
con.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"UTF-8"));
String s = "";
StringBuffer sb = new StringBuffer("");
while ((s = br.readLine()) != null) {
sb.append(s+"\r\n");
}
这样的话,抓取的时候程序就不会跳换其它页面去抓取其它的内容了,这就达到我们的目的了。
如果是我们是处于内部网的话,还需要专门给它加上代理, Java以特殊的系统属性为代理服务器提供支持,只要在上面的程序加上以下程序就可以了。
System.getProperties().setProperty( "http.proxyHost", proxyName );
System.getProperties().setProperty( "http.proxyPort", port );
这样的话就可以实现处于内部网中而向互联网抓取自己想要的东西了。
上面的程序抓取回来的全部内容都存放在sb这个字符串,我们就可以通过正则表达式对它进行分析,提取出自己想要的具体的内容,为我所用,呵呵,这是多么美妙的一件事情啊!!
原文地址:
http://blog.sina.com.cn/s/blog_53d15ef7010097tz.html
之前在做抓取的时候都会报这个异常,看了文章就解决了:
java.net.ProtocolException: Server redirected too many times (20)
分享到:
相关推荐
java抓取网页数据实现
Java抓取https网页数据,解决peer not authenticated异常。导入eclipse就能运行,带有所用的jar包(commons-httpclient-3.1.jar,commons-logging.jar,httpclient-4.2.5.jar,httpcore-4.2.4.jar)
java网页抓取数据
Java抓取网页内容三种方式
java抓取网站数据
java抓取网页java工具类java抓取网页java工具类
Java抓取网页数据的两种方法:(1)抓取原网页 (2)抓取网页JS返回数据
通过java抓取任何指定网页的数据,里面介绍了java如何实现抓取技术,抓取指定的网页数据并解析
java简单的抓取网页内容的程序java简单的抓取网页内容的程序java简单的抓取网页内容的程序java简单的抓取网页内容的程序java简单的抓取网页内容的程序java简单的抓取网页内容的程序java简单的抓取网页内容的程序java...
非常好的一个java版本的网络爬虫,下载直接可以运行。可以后台登陆然后再抓取。值得大家研究。
这个程序利用java抓取网页内容,然后生成生成静态页面
简单的实现网页数据抓取的demo。java实现
java抓取网页数据,主要用于抓取手机号和身份证查询网站的数据。
java抓取网页的爬虫
java抓取网页内容 ,简单实用,初学
Java网页抓取数据
java爬虫抓取网页数据教程.pdf
主要介绍了详解JAVA抓取网页的图片,JAVA利用正则表达式抓取网站图片,非常具有实用价值,需要的朋友可以参考下。
不是完整的程序,只是两页 抓取与采集页面内容 喜欢的拿去研究下 代码量不大,注释没加,不过都不太难。
动态抓取网页内容,生成word文件,包含具体demo和所需jar包