使用jsoup进行网页内容抓取
对网页内容的抓取比较的感兴趣,于是就简单的学习了一下,如果不使用任何的框架去抓取网页的内容,感觉有点难度,我就简单点来吧,这里所使用的jsoup框架,抓取网页的内容与使用jquery选择网页的内容差不多,上手很快。下面就简单的介绍一下吧!
首先是获取网络资源的方法:
/**
* 获取网络中的超链接
*
* @param urlStr
* 传入网络地址
* @return 返回网页中的所有的超链接信息
*/
public String getInternet(String urlStr, String encoding) {
URL url = null;
URLConnection conn = null;
String nextLine = null;
StringBuffer sb = new StringBuffer();
// 设置系统的代理信息
Properties props = System.getProperties();
props.put("proxySet", "true");
props.put("proxyHost", "10.27.16.212");
props.put("proxyPort", "3128");
System.setProperties(props);
try {
// 获取网络资源
url = new URL(urlStr);
// 获取资源连接
conn = url.openConnection();
conn.setReadTimeout(30000);//设置30秒后超时
conn.connect();
BufferedReader reader = new BufferedReader(new InputStreamReader(
conn.getInputStream(), encoding));
// 开始读取网页信息获取网页中的超链接信息
while ((nextLine = reader.readLine()) != null) {
sb.append(nextLine);
} } catch (Exception e) {
e.printStackTrace();
}
return sb.toString(); }
我们在获取了网络资源之后,我们就可以根据自己的需求筛选出对自己有用的资源了,下面开始抓取资源:
public static void main(String[] args) {
MavenTest test = new MavenTest();
try {
String html = test.getInternet( "http://www.weather.com.cn/html/weather/101020100.shtml#7d","UTF-8");
//将html文档转换为Document文档
Document doc = Jsoup.parse(html);
//获取class为.weatherYubaoBox的div的元素
Elements tableElements = doc.select("div.weatherYubaoBox");
// System.out.println(tableElements.html());
//获取所有的th元素
Elements thElements = tableElements.select("th");
//打印出日期的标题信息
for (int i = 0; i < thElements.size(); i++) {
System.out.print(" "+thElements.get(i).text() + "\t");
}
// 输出标题之后进行换行
System.out.println();
//获取表格的tbody
Elements tbodyElements = tableElements.select("tbody");
for (int j = 1; j < tbodyElements.size(); j++) {
//获取tr中的信息
Elements trElements = tbodyElements.get(j).select("tr");
for (int k = 0; k < trElements.size(); k++) {
//获取单元格中的信息
Elements tdElements = trElements.get(k).select("td");
//根据元素的多少判断出白天和夜晚的
if (tdElements.size() > 6) {
for (int m = 0; m < tdElements.size(); m++) {
System.out.print(tdElements.get(m).text() + "\t");
}
// 白天的数据打印完成后进行换行
System.out.println();
}else{
for(int n =0; n < tdElements.size(); n++){
System.out.print("\t"+tdElements.get(n).text());
}
//打印完成夜间的天气信息进行换行处理
System.out.println();
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
运行的结果如下:

最后附上框架的地址:http://www.open-open.com/jsoup/selector-syntax.htm
使用jsoup进行网页内容抓取的更多相关文章
- Java+Jsoup实现网页内容抓取
不知不觉毕业快一年了,工作逐渐趋于平淡,从一个对编程了解得很少甚至完全一窍不通的小小菜,终于成为了一枚小菜,总而言之,算是入了IT这一行.这大半年马马虎虎做了三个项目,有安卓项目,有Java Web项 ...
- 使用Jsoup函数包抓取网页内容
之前写过一篇用Java抓取网页内容的文章,当时是用url.openStream()函数创建一个流,然后用BufferedReader把这个inputstream读取进来.抓取的结果是一整个字符串.如果 ...
- Java下HttpUnit和Jsoup的Http抓取
简单记录下:搜集信息-分析问题-解决问题 关于html文档的操作现成库有: HttpUnit 很老了,不更了 http://www.httpunit.org/ 20 May 2008 HttpUni ...
- 网络爬虫WebCrawler(1)-Http网页内容抓取
在windows在下面C++由Http协议抓取网页的内容: 首先介绍了两个重要的包(平时linux在开源包,在windows下一个被称为动态链接库dll):curl包和pthreads_dll,其中c ...
- C# asp.net 抓取需要登录的网页内容 抓取asp.net登录验证的网站
private void btnASPNET_Click(object sender, EventArgs e) { Dictionary<string, s ...
- php 网页内容抓取
最近抓的2个网站内容的代码 列表页抓取:第一种使用phpquery插件,可以快速获取,第二种它是api,所以直接获取 load_third("phpQuery.php"); /** ...
- Python 实现腾讯新闻抓取
原文地址:http://www.cnblogs.com/rails3/archive/2012/08/14/2636780.htm 思路: 1.抓取腾讯新闻列表页面: http://news.qq.c ...
- jsoup抓取网页内容
java项目有时候我们需要别人网页上的数据,怎么办?我们可以借助第三方架包jsou来实现,jsoup的中文文档,那怎么具体的实现呢?那就跟我一步一步来吧 最先肯定是要准备好这个第三方架包啦,下载地址, ...
- HTTPCLIENT抓取网页内容
通过httpclient抓取网页信息. public class SnippetHtml{ /** * 通过url获取网站html * @param url 网站url */ public Strin ...
随机推荐
- Mac配置JAVA_HOME
首先打开终端,输入/usr/libexec/java_home,看到 /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home 说 ...
- 关于dll的路径问题
最近在做一个sdk二次开发的项目,具体是将一个C++开发的SDk用C#将它的API接口全部封装一遍,然后再做一个demo就好了 好不容易封装完了,在使用的时候出了问题.原来SDK中的dll老是加载不到 ...
- Tomcat修改网址旁边的小图标
用Tomcat发布时候,往往不希望用IP地址旁边的Tomcat小猫,根据需求利用自己的icon图标. 先将需要的图片转换成icon格式的. 这个网站可以进行icon格式的转换:http://www.c ...
- Delphi 设置WebBrowser 代理服务器 与 UserAgent
uses UrlMon, WinInet; {----------------------------------------------------------------------------- ...
- XPath具体解释
New Document 相关读书笔记.心得文章列表 一.结点类型 XPath中有七种结点类型:元素.属性.文本.命名空间.处理指令.凝视以及文档节点(或成为根节点). 文档的根节点即是文档结点:相应 ...
- IOS 7 Study - Manipulating a Navigation Controller’s Array of View
ProblemYou would like to directly manipulate the array of view controllers associated with aspecific ...
- 【转】android开源项目和框架
特效: http://www.androidviews.net/ http://www.theultimateandroidlibrary.com/ 常用效果: 1. https://github ...
- 50个Android开发人员必备UI效果源码[转载]
50个Android开发人员必备UI效果源码[转载] http://blog.csdn.net/qq1059458376/article/details/8145497 Android 仿微信之主页面 ...
- Gridview中绑定DropDownList
1.页面代码 <asp:TemplateField HeaderText="等级"> ...
- pushState onpopstate
转载自:http://www.cnblogs.com/gaoxue/p/3885796.html 参考MDN: https://developer.mozilla.org/zh-CN/docs/DOM ...