Webmagic 爬虫的配置、启动和终止

通过上一篇的小 demo,我们发现爬取网页内容都是通过实现 PageProcessor 来抓取的。在第一章也介绍到实 PageProcessor 是 Webmagic 4个重要组件之一。PageProcessor 的主要作用是:负责解析页面,抽取有用信息,以及发现新的链接。

下面我们再来看看GithubRepoPageProcessor的内容:

public class GithubRepoPageProcessor implements PageProcessor {
    // 部分一:抓取网站的相关配置,包括编码、抓取间隔、重试次数等
    private Site site = Site.me().setRetryTimes(3).setSleepTime(1000);
    @Override
    // process是定制爬虫逻辑的核心接口,在这里编写抽取逻辑
    public void process(Page page) {
        // 部分二:定义如何抽取页面信息,并保存下来
        page.putField("author", page.getUrl().regex("https://github//.com/(//w+)/.*").toString());
        page.putField("name", page.getHtml().xpath("//h1[@class='entry-title public']/strong/a/text()").toString());
        if (page.getResultItems().get("name") == null) {
            //skip this page
            page.setSkip(true);
        }
        page.putField("readme", page.getHtml().xpath("//div[@id='readme']/tidyText()"));

        // 部分三:从页面发现后续的url地址来抓取
        page.addTargetRequests(page.getHtml().links().regex("(https://github//.com/[//w//-]+/[//w//-]+)").all());
    }
    @Override
    public Site getSite() {
        return site;
    }
    public static void main(String[] args) {
        Spider.create(new GithubRepoPageProcessor())
                //从"https://github.com/code4craft"开始抓
                .addUrl("https://github.com/code4craft")
                //开启5个线程抓取
                .thread(5)
                //启动爬虫
                .run();
    }
}

PageProcessor 接口主要有两个方法。

  • void process(Page page):负责处理页面,提取URL获取,提取数据和存储
  • Site getSite():获取站点相关设置信息

关于爬虫的配置,包括编码、抓取间隔、超时时间、重试次数等,也包括一些模拟的参数,例如User Agent、cookie,以及代理的设置使用见下面内容!

Spider

Spider是爬虫启动的入口。在启动爬虫之前,我们需要使用一个PageProcessor创建一个Spider对象,然后使用run()进行启动。同时Spider的其他组件(Downloader、Scheduler、Pipeline)都可以通过set方法来进行设置。

WebMagic Spider api 详解

Site

对站点本身的一些配置信息,例如编码、HTTP头、超时时间、重试策略等、代理等,都可以通过设置Site对象来进行配置。

WebMagic Site api 详解

循环重试cycleRetry机制会将下载失败的url重新放入队列尾部重试,直到达到重试次数,以保证不因为某些网络原因漏抓页面。

这两个api你完全掌握之后,剩下的就是Xsoup解析了。关于Xsoup解析,我们下章再讲!

Webmagic 爬虫的配置、启动和终止

: » Webmagic 爬虫的配置、启动和终止

原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/251569.html

(0)
上一篇 2022年5月3日
下一篇 2022年5月3日

相关推荐

发表回复

登录后才能评论