4.1 实现PageProcessor

这部分我们直接通过GithubRepoPageProcessor这个例子来介绍PageProcessor的编写方式。我将PageProcessor的定制分为三个部分,分别是爬虫的配置、页面元素的抽取和链接的发现。

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();

}

}

转载于:https://www.cnblogs.com/cnblog-long/p/5376495.html

实现PageProcessor相关推荐

  1. WebMagic之优秀爬虫框架

    2019独角兽企业重金招聘Python工程师标准>>> 1. 一个框架,一个领域 一个好的框架必然凝聚了领域知识.WebMagic的设计参考了业界最优秀的爬虫Scrapy,而实现则应 ...

  2. GuozhongCrawler系列教程 (4) StartContext具体解释

    StartContext是注入时全部seed的上下文信息假设爬虫在抓取过程其中须要共享一些变量.那么可使用StartContext作为容器. 构造器具体资料 StartContext public S ...

  3. SpringBoot + WebMagic实现一个的爬虫框架

    作者 | jessehua 来源 | www.jianshu.com/p/cfead4b3e34e WebMagic是一个开源的java爬虫框架.WebMagic框架的使用并不是本文的重点,具体如何使 ...

  4. 爬虫的配置、启动和终止

    爬虫的配置.启动和终止 Spider Spider是爬虫启动的入口.在启动爬虫之前,我们需要使用一个PageProcessor创建一个Spider对象,然后使用run()进行启动. 同时Spider的 ...

  5. WebMagic功能——XPath、CSS选择器、正则表达式 || 抽取元素API、获取结果API || ​​​​​​​获取链接||​​​​​​​使用Pipeline保存结果

    WebMagic功能 实现PageProcessor 抽取元素Selectable WebMagic里主要使用了三种抽取技术:XPath.正则表达式和CSS选择器.另外,对于JSON格式的内容,可使用 ...

  6. 爬虫框架webmagic与spring boot的结合使用--转

    原文地址:http://www.jianshu.com/p/c3fc3129407d 1. 爬虫框架webmagic WebMagic是一个简单灵活的爬虫框架.基于WebMagic,你可以快速开发出一 ...

  7. java 使用webmagic 爬虫框架爬取博客园数据

    java 使用webmagic 爬虫框架爬取博客园数据存入数据库 学习记录   webmagic简介: WebMagic是一个简单灵活的Java爬虫框架.你可以快速开发出一个高效.易维护的爬虫. ht ...

  8. WebMagic之爬虫监控

    访问我的博客 前言 年前闲着无聊,研究了一阵子爬虫技术,接触到爬虫框架 WebMagic,感觉很好用. 在之后的工作中,接手了新站与第三方接口对接的工作,主要的工作是去抓取对方接口的内容:初始的时候, ...

  9. 用 Java 爬小姐姐图片,这个厉害了。。。

    今日推荐 Web登录很简单?开玩笑!知乎热问:国家何时整治程序员的高薪现象?太可怕了!注解+反射优雅的实现Excel导入导出(通用版)Fluent Mybatis 牛逼!Nginx 常用配置清单这玩意 ...

最新文章

  1. oracle中计算某月的天数
  2. python字典get计数_python字典中的get方法与setdefault方法
  3. 题目1090:路径打印
  4. 三星电子电容器件识别
  5. mysql有子查询么_sql-带有子查询的mysql更新查询
  6. angular js 使用pdf.js_排名靠前的几个JS框架发展趋势和前景
  7. java中软填空面试题,通过这9个Java面试题,就可以入职华为啦
  8. Maven:repositories、distributionManagement、pluginRepositories中repository的区别
  9. 脱单盲盒|交友盲盒系统
  10. Vmware下安装CentOS6的特别注意,一定要在虚拟机上电时候按DEL,选择操作系统启动方式...
  11. CCF202104-1 灰度直方图
  12. 刚刚,百度宣布王海峰升任 CTO
  13. github操作实用命令
  14. serializable接口_面试官:RandomAccess这个空接口有何用?
  15. Windows 搭建 FTP 服务器
  16. 网易云音乐(纯CSS实战)
  17. mybatis常用标签
  18. 用Python写个「倒计时」软件
  19. MySQL 常用时间记录
  20. 服务最大的并发量是多少?

热门文章

  1. 面试题分享【不断更新】
  2. MySQL之如何删除重复数据只保留一条
  3. 插件化框架DL源码的简单解析
  4. 使用canvas绘制小程序码
  5. emWin 2天速成实例教程002_多个页面窗口切换
  6. 2017-3-10 SQL server 数据库 T--SQL语句
  7. 模糊控制算法详细讲解
  8. JS template string 神奇术
  9. phpcms v9中模板标签和联动菜单的使用方法详解
  10. linux系统状态(磁盘大小、内存、进程、cpu使用率、网络连接)