java采集数据,获取了 html整个文本之后。
该考虑的是如何过滤掉html标签, 得到自己所需要的重要数据了。
实现方法有多种办法,第一:用正则,第二:用第三方jar包,其实本质也是封装了正则表达式
今天就以 Jsoup 第三方jar包来讲解。
jsoup详细资料:http://blog.csdn.net/yjflinchong/article/details/7743995
转载注明出处:http://blog.csdn.net/column/details/threadgrab.html
现在贴上一个网页过滤的方法实例
//门票浏览 url参数 http://www.lvmama.com/dest/lantiancheng
public static DataBean getWebData1(String url){
DataBean data = null;
try {
Document docdata = Jsoup.connect(url).timeout(20000).get();
String id = ".quick-menu .last a";
String city = ".proDetail a";
String title = ".proDetail h1";
String content = "#Introduction";
Elements ele = docdata.select(city);
city = (ele.text());
ele = docdata.select(title);
title = (ele.text()).replace("<", "").replace(">", "").replace("\\/", "");
ele = docdata.select(content);
content = (ele.text());
ele = docdata.select(id);
String[] idary = ele.attr("href").split("\\/");
id = idary[idary.length-1];
String type = "景点门票";
List<String> images = new ArrayList<String>();
data = new DataBean(id,title,url,content,type,city,images);
Dom4jUtil.createFile("data/["+type+"]"+title+".xml", Dom4jUtil.createDocument(data));
type = "景点评论";
content = ".userComments dl dd:eq(3)";
ele = docdata.select(content);
content = "";
int i = 1;
for (Element el : ele) {
content += ("|第"+i+":"+el.text());
i++;
}
data = new DataBean(id,title,url,content,type,city,images);
//用xml存储数据
Dom4jUtil.createFile("data/["+type+"]"+title+".xml", Dom4jUtil.createDocument(data));
} catch (Exception e) {
e.printStackTrace();
}
return data;
}
整个过程分为几部
1、 获取页面的节点对象
Document docdata = Jsoup.connect(url).timeout(20000).get();
七七八八网http://www.qi788.com2、创建选择器,选择页面节点对象的 text 或 html 。 选择方式跟jquery非常类似。
例如:
String title = ".proDetail h1";
ele = docdata.select(title);
这个就是用来选择 class = proDetail 下 h1 标签的对象。通过 ele.text() 就得到了标签中的文本。
Document docdata = Jsoup.connect(url).timeout(20000).get();
String id = ".quick-menu .last a";
String city = ".proDetail a";
String title = ".proDetail h1";
String content = "#Introduction";
Elements ele = docdata.select(city);
city = (ele.text());
ele = docdata.select(title);
title = (ele.text()).replace("<", "").replace(">", "").replace("\\/", "");
ele = docdata.select(content);
content = (ele.text());
ele = docdata.select(id);
String[] idary = ele.attr("href").split("\\/");
id = idary[idary.length-1];
3、通过获取的数据,构造java数据对象 。 然后存入xml或txt文件。 如果有需要也可以存入数据库啦。
String type = "景点门票";
List<String> images = new ArrayList<String>();
data = new DataBean(id,title,url,content,type,city,images);
Dom4jUtil.createFile("data/["+type+"]"+title+".xml", Dom4jUtil.createDocument(data));
走完这3部,就算是从html源代码文件中取到了 我们需要的数据了。
转载注明出处:http://blog.csdn.net/yjflinchong
java采集数据过滤html标签,获取指定数据,就搞定了
分享到:
相关推荐
资源名字:基于java+Jsoup+HttpClient的网络爬虫技术的网络新闻分析系统设计与实现(源码+文档)_MySQL_网络爬虫_数据挖掘.zip 资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百...
使用java+jsoup进行网页数据的抓取,提取自己想要的数据
基于Java+Jsoup的手机信息爬虫源码.zip
基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+...
用java+jsoup解析api本地帮助文档的一些实例,实测java1.6 html格式的API可用(对于一个学习java已有N年,但却一直停留在“曾经学过”的阶段人来说,java确实有其难处,类库相对较多。我最初设计目的是想要解析帮助...
基于SSM+maven+httpClient+jsoup实现小说网站项目源码.zip 基于SSM+maven+httpClient+jsoup实现小说网站项目源码.zip 基于SSM+maven+httpClient+jsoup实现小说网站项目源码.zip 基于SSM+maven+httpClient+jsoup实现...
针对java语言 编写的爬虫demo,爬取互联网图片资源 寻找图片素材,自动下载到本地
当然,也就考虑到了线程安全问题,都知道,for循环中的int i 是非线程安全的,先不聊原子性的,直说多线程,实现runnble接口,刚开始会导致数据重复,查询资料,说事因为线程不安全导致,因为涉及到征用乱七八招的...
htmlunit2.8 + jsoup1.7各种网站上的数据抓取。
知网 知网_基于Java+HtmlUtil+jsoup实现爬取知网中国专利数据
利用httpClient+jsoup技术进行网页数据的获取,以网易贵金属为例~
主要介绍了Java爬虫Jsoup+httpclient获取动态生成的数据的相关资料,需要的朋友可以参考下
java基于jsoup+mongodb的简单爬虫入门程序,简单易懂,希望能给大家提供帮助
java 爬虫 里面有相关jar 和文件 直接下载就能使用 httpclient3.1
httpClient+jsoup抓取网页数据实例和jar包
web小说网站
springboot【小说阅读网站】,多线程抓取小说数据(单本或者批量),持久化到MySQL数据库,能定时跟源站数据同步=小说定时更新。通过jsoup采集数据到mysql数据,redis作为缓存框架,减轻服务器压力。部署在linux,网站...
博客:https://blog.csdn.net/cherfz/article/details/88640459
jsoup.jar+jsoup中文API,需要的就下载吧