• 欢迎访问web前端中文站,JavaScript,CSS3,HTML5,web前端demo
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏web前端中文站吧

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

JAVA web前端中文站 3年前 (2017-04-25) 2652次浏览 已收录 0个评论
文章目录[隐藏]

通过上一篇的小 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 解析,我们下章再讲!


web 前端中文站 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Webmagic 爬虫的配置、启动和终止
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址