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

一、爬取国际石油网知识板块

要爬取的网站为: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覆写

  1. 先提取列表页的Elements,他的class为”clist sborder“
  2. 过滤其中的a[href],如果包含"http://oil.in-en.com/html/oil"就加入清洗和入库
  3. 如果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选择器对于属性中间有空格的解决方法这边不是很了解,也没有查到,看下面可不可以解决。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值