【Java】WebMagic实现的最基本的爬虫

来源:互联网 发布:英雄杀这次探宝数据 编辑:程序博客网 时间:2024/06/05 03:09
WebMagic是一个十分容易入门的爬虫框架,并且扩展也十分容易。关于WebMagic,官网有十分详细的介绍,并且有教程和示例。

我这里只实现了十分基础的功能,可以用作入门了解的参考。

准备工作:

1.需要到官网下载相关的jar包,并且导入到工程中(导入的方法请自行了解~)

2.这里用的是xpath的搜索方法,相关语法等,需要简单了解

import us.codecraft.webmagic.Page;import us.codecraft.webmagic.Site;import us.codecraft.webmagic.Spider;import us.codecraft.webmagic.processor.PageProcessor;public class hi implements PageProcessor {    // 抓取网站的相关配置,包括编码、抓取间隔、重试次数等    private Site site = Site.me().setRetryTimes(3).setSleepTime(100);    private static int count =0;    @Override    public Site getSite() {        return site;    }    @Override    public void process(Page page) {        //判断链接是否符合     [a-z 0-9 -]*是任意数字字母        if(!page.getUrl().regex("http://blog.csdn.net/zuoxiaolong8810/article/details/[a-z 0-9 -]*.html").match()){                      page.addTargetRequests(                    page.getHtml().xpath("//*[@id=\"article_list\"]/div/div/h1/span/a/@href").all());//获取我需要的链接                        System.out.println("文章标题:"+ page.getHtml().xpath("/html/head/title/text()").get() );//输出需要的内容(这里我需要的是标题)            count ++;        }                //把符合这个网址格式的,加入到爬取队列        page.addTargetRequests(page.getHtml().links().regex("(http://blog.csdn.net/zuoxiaolong8810/article/list/[a-z 0-9 -]*)").all());    }    public static void main(String[] args) {        long startTime, endTime;        System.out.println("开始爬取...");        startTime = System.currentTimeMillis();        Spider.create(new hi()).addUrl("http://blog.csdn.net/zuoxiaolong8810/article/list/1").thread(5).run();//从这个网址开始获取        endTime = System.currentTimeMillis();        System.out.println("爬取结束,耗时约" + ((endTime - startTime) / 1000) + "秒,抓取了"+count+"条记录");    }}


xpath的值应该怎么填?

1.用chrome浏览器,对着需要获取的值,右键->检查,然后查看需要的内容

2.找到需要的内容后,右键->copy->xpath

3.之后可能需要自己再补充(比如:/@href




原创粉丝点击