您的位置:首页 > 编程语言 > Java开发

WebCollector爬虫学习记录(一)爬取国际石油网知识板块

2017-03-15 15:47 316 查看
一、爬取国际石油网知识板块

要爬取的网站为:http://oil.in-en.com/zhishi/

网站结构比较标准,新闻列表页单一且包含href链接,下一页链接等信息

1.1 添加种子

}else if (crawler.webMoudle == 38) {
if (crawler.mk.equals("Sybk")) {
/* 起始页 */
crawler.addSeed("http://oil.in-en.com/zhishi/");
crawler.addRegex("http://oil.in-en.com/html/oil.*");
}
}


1.2 visit覆写

先提取列表页的Elements,他的class为”clist sborder“
过滤其中的a[href],如果包含"http://oil.in-en.com/html/oil"就加入清洗和入库
如果indexOf("下一页")就next.add(href);,即将此链接设置为下一页的种子
else if (this.webMoudle == 38) {
Elements pageHaveClass = page.select("div[class]");
for (Iterator it = pageHaveClass.iterator(); it.hasNext();) {
Element pageSelectedClass = (Element) it.next();
String classAttr = pageSelectedClass.attr("class");
if (classAttr.equals("clist sborder")) {
Elements es = pageSelectedClass.select("a[href]");
for (Iterator itHref = es.iterator(); itHref.hasNext();) {
Element e = (Element) itHref.next();
String href = e.attr("abs:href");
if (e.text().indexOf("下一页") >= 0) {
next.add(href);
}
if (href.indexOf("http://oil.in-en.com/html/oil") != -1) {

String title = e.text();
datebaseByContentExtractor(href, title);
}
}
}
}
}


清洗、时间条件过滤、关键词过滤和入库的过程此处省略
在过滤class="clist sborder"的步骤好像麻烦了,但是jsoup的css选择器对于属性中间有空格的解决方法这边不是很了解,也没有查到,看下面可不可以解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 爬虫 WebCollector