`

6行代码抓取网页

    博客分类:
  • java
阅读更多

前言:

网上有很多的抓取网页的代码,大部分是用的都是java api ,HttpClient,HttpURLConnection,io等等

新手看了是不是很晕呀?难道java抓个网页就这么费劲吗?

今天咱们利用apache commons io + 输出流重定向 的方式6行解决网页抓取问题(当然其实可以是5行 呵呵)

 

准备:

    下载apache commons-io  传送门   然后将这个jar加入到你的项目中

 

 

//天气预报网址
String url="http://www.weather.com.cn/weather/101030100.shtml";
//是用apache commons io 直接把页面抓成String
String htmlContent=IOUtils.toString(new URL(url));
//重定向输出流 到文件
PrintStream ps=new PrintStream(new File("D:/cxyapi.html"));
System.setOut(ps);
System.out.println(htmlContent); //这里的打印不在控制台,而是直接进入文件
ps.close();

 

声明:

1.原创文章,转载请标明并加本文连接。

2.文章反映个人愚见,如有异议欢迎讨论指正

3.更多的内容请看我的  个人博客(测试版)

 

 

2
8
分享到:
评论
8 楼 sgp420 2013-04-15  
snkcxy 写道
sgp420 写道
用这个测试了下  
控制台java.net.UnknownHostException: www.weather.com.cn
我应该如何写?


1.是确保是联网呢么?
2.你用浏览器直接访问www.weather.com.cn 看看能不能访问到 ping一下也行
3.这个和你网络环境有关吧 你们的dns 或者说 你们局域网屏蔽限制ip什么的



浏览器里面访问是OK的,在cmd里面 PING 不通这个,
公司设定的,用的是代理服务器上的;
7 楼 snkcxy 2013-04-15  
sgp420 写道
用这个测试了下  
控制台java.net.UnknownHostException: www.weather.com.cn
我应该如何写?


1.是确保是联网呢么?
2.你用浏览器直接访问www.weather.com.cn 看看能不能访问到 ping一下也行
3.这个和你网络环境有关吧 你们的dns 或者说 你们局域网屏蔽限制ip什么的
6 楼 sgp420 2013-04-15  
用这个测试了下  
控制台java.net.UnknownHostException: www.weather.com.cn
我应该如何写?
5 楼 snkcxy 2013-04-15  
20130115 写道
连个编码都不关注的简单需求还搞这么多行代码。。。
FileUtils.copyURLToFile(new URL("http://www.weather.com.cn/weather/101030100.shtml"), new File("D:/cxyapi.html"));


您写的这个方法 我在 http://snkcxy.iteye.com/blog/1845862 我的这篇博客其实也介绍过
4 楼 snkcxy 2013-04-15  
20130115 写道
连个编码都不关注的简单需求还搞这么多行代码。。。
FileUtils.copyURLToFile(new URL("http://www.weather.com.cn/weather/101030100.shtml"), new File("D:/cxyapi.html"));


好吧 其实您这个更简单
我写这个文章最初想介绍的其实是 标准输出流的重定向 so 你懂的
3 楼 20130115 2013-04-15  
连个编码都不关注的简单需求还搞这么多行代码。。。
FileUtils.copyURLToFile(new URL("http://www.weather.com.cn/weather/101030100.shtml"), new File("D:/cxyapi.html"));
2 楼 snkcxy 2013-04-15  
扩展一下
本文抓取的是天气预报,使用htmlparser作一下html解析,也可以达到抓取天气预报的效果。
当然 我不是说这是唯一或者是最好的方式,只是抓取天气预报的一种。
1 楼 snkcxy 2013-04-15  
纠正一下 这里有个小错误HttpClient 不是源生java api  也是apache commons下的
如果你需要做登陆后的抓取 那就要用到这个类了。

相关推荐

Global site tag (gtag.js) - Google Analytics