GuozhongCrawler系列教程 (3) PageProcessor详解

Stella981
• 阅读 531

       PageProcessor是所有PageRequest请求完成后处理的接口。 例如:startContext.createPageRequest("http://my.oschina.net/u/1377701/blog/425984",OschinaProcessor.class)即可指定处理页面结果 此时重写OschinaProcessor.process方法即可完成解析工作

方法详细资料

  • getJavaScript

    PageScript getJavaScript()
    

    如果这个页面需要动态交互JS,定义一个PageScript返回

  • 返回:

  • getNormalContain

    java.util.regex.Pattern getNormalContain()
    

    当启动代理Ip访问时需要重写此方法,返回正常网页应该带有的字符串标识。比如www.baidu.com带有“百度”

  • 返回:

  • process

    void process(OkPage page,           StartContext context,
               java.util.List<BasicRequest> queue,
               java.util.List<Proccessable> objectContainer)
                 throws java.lang.Exception
    

    处理一个页面

  • 参数:

  • page - 下载完成的网页

  • context - 当前所有入口的上下文对象

  • queue - 加入跟进Request的List容器,处理完成后queue的所有Request会被推送到抓取队列中

  • 抛出:

  • java.lang.Exception

  • processErrorPage

    void processErrorPage(Page page,                    StartContext context)
                          throws java.lang.Exception
    

    处理错误页面

  • 参数:

  • page -

  • context -

  • 抛出:

  • java.lang.Exception

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Souleigh ✨ Souleigh ✨
3年前
前端性能优化 - 雅虎军规
无论是在工作中,还是在面试中,web前端性能的优化都是很重要的,那么我们进行优化需要从哪些方面入手呢?可以遵循雅虎的前端优化35条军规,这样对于优化有一个比较清晰的方向.35条军规1.尽量减少HTTP请求个数——须权衡2.使用CDN(内容分发网络)3.为文件头指定Expires或CacheControl,使内容具有缓存性。4.避免空的
Stella981 Stella981
3年前
Angular相关内容学习总结
一、angular项目搭建1、前端框架Yeoman(http://my.oschina.net/u/1416844/blog/196199) http://my.oschina.net/u/1416844/blog/196199二、angular结构划分angular经典的架构和目
Stella981 Stella981
3年前
From表单提交的几种方式
<body<formaction"https://my.oschina.net/u/3285916"method"get"name"formOne"id"formId"name:<inputtype"text"name"name"pwd:<inputtyp
Wesley13 Wesley13
3年前
@EnableAutoConfiguration处理逻辑
这个系列分为5篇1\.@Component,@Service等注解是如何被解析的(http://my.oschina.net/u/3907912)2\.@Enable驱动原理(https://my.oschina.net/floor/blog/4333081)3\.@EnableAutoConfiguration处理逻辑(htt
Wesley13 Wesley13
3年前
Oracle一张表中实现对一个字段不同值和总值的统计(多个count)
需求:统计WAIT\_ORDER表中的工单总数、未处理工单总数、已完成工单总数、未完成工单总数。表结构:为了举例子方便,WAIT\_ORDER表只有两个字段,分别是ID、STATUS,其中STATUS为工单的状态。1表示未处理,2表示已完成,3表示未完成总数。 SQL:  1.SELECT   2
Wesley13 Wesley13
3年前
(5) 基于领域分析设计的架构规范
本系列目录:1.改变与优势(https://my.oschina.net/u/4006523/blog/3071568)2.领域分析基础(https://my.oschina.net/u/4006523/blog/3071569)3.读写隔离(https://my.oschina.net/u/4006523/blog/3071
Stella981 Stella981
3年前
PHP中解决ajax请求session过期退出登录问题
PHP判断一个请求是Ajax请求还是普通请求(http://my.oschina.net/junn/blog/150273)1、session过期,如果直接是url请求,或者用户在打开的系统页面中直