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

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

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

 public class GithubRepoPageProcessor implements PageProcessor {     
 // 部分一:抓取网站的相关配置,包括编码、抓取间隔、重试次数等  
 //web前端中文站 www.lisa33xiaoq.net   
 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 爬虫的配置、启动和终止

Site

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

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

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

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

0
如无特殊说明,文章均为原作者原创,转载请注明出处

该文章由 发布

这货来去如风,什么鬼都没留下!!!
发表我的评论

Hi,请填写昵称和邮箱!

取消评论
代码 贴图 加粗 链接 删除线 签到