GuozhongCrawler是分层架构。要高速学习CrawlTask独立的配置多少要了解框架的源码。所以CrawTaskBuilder提供要更加扁平且易于理解的的方式创建CrawTask

方法具体资料

  • useThread

    public CrawTaskBuilder useThread(int threadNum)
    设置CrawlTask下载处理Request的线程数量
    參数:
    threadNum -
    返回:
    CrawTaskBuilder
  • usePipeline

    public CrawTaskBuilder usePipeline(java.lang.Class<?
    
    extends Pipeline> pipelineCls)
    设置实现好的Pipeline类Class
    參数:
    pipelineCls - 持久化处理类
    返回:
    CrawTaskBuilder
  • usePageRetryCount

    public CrawTaskBuilder usePageRetryCount(int retryCount)
    假设因为网络问题。请求url时可能会出现失败的情况。那么你设置最大又一次请求的次数默认又一次请求1次
    參数:
    retryCount -
    返回:
    CrawTaskBuilder
  • usePageEncoding

    public CrawTaskBuilder usePageEncoding(PageRequest.PageEncoding defaultEncoding)
    一般抓取某个站点会有统一的编码,假设你不想每次都调用PageRequest.setPageEncoding的话,那么你能够设置一个默认的编码
    返回:

  • injectStartUrl

    public CrawTaskBuilder injectStartUrl(java.lang.String url,
    java.lang.Class<? extends PageProcessor> processorCls,
    java.util.Map<java.lang.String,java.lang.Object> contextAttribute,
    PageRequest.PageEncoding pageEncoding)
    加入种子URL设置附加參数和页面编码格式 每一个injectStartUrl方法注入的种子URL会用一个单独的StatContext包装。假设StatContext在抓取过程中不会产生较多新的跟进Request 那么推荐你使用useDynamicEntrance设置入口URL将会更加提升效率
    參数:
    url -
    contextAttribute -
    PageEncoding -
    返回:

  • injectStartUrl

    public CrawTaskBuilder injectStartUrl(java.lang.String url,
    java.lang.Class<? extends PageProcessor> processorCls,
    java.util.Map<java.lang.String,java.lang.Object> contextAttribute)
    加入种子URL并设置附加參数 每一个injectStartUrl方法注入的种子URL会用一个单独的StatContext包装。假设StatContext在抓取过程中不会产生较多新的跟进Request 那么推荐你使用useDynamicEntrance设置入口URL将会更加提升效率
    參数:
    url -
    contextAttribute -
    返回:

  • injectStartUrl

    public CrawTaskBuilder injectStartUrl(java.lang.String url,
    java.lang.Class<? extends PageProcessor> processorCls)
    加入种子URL。并指定PageProcessor。 每一个injectStartUrl方法注入的种子URL会用一个单独的StatContext包装。假设StatContext在抓取过程中不会产生较多新的跟进Request 那么推荐你使用useDynamicEntrance设置入口URL将会更加提升效率
    參数:
    url -
    返回:

  • useDynamicEntrance

    public CrawTaskBuilder useDynamicEntrance(java.lang.Class<? extends DynamicEntrance> dynamicEntranceCls)
    假设你想在单个StartContext中直接初始化跟进URL,或者让爬虫分批注入种子的话。

    那么DynamicEntrance提供了这种接口

    參数:
    dynamicEntranceCls - DynamicEntrance的继承实现类
    返回:

  • useQueuePriorityRequest

    public CrawTaskBuilder useQueuePriorityRequest()
    使用优先级队列。在一些抓取分页较多情景下推荐使用QueuePriorityRequest。由于 它能非常好的保证优先级高的Request优先被处理。从而防止队列金字塔式的膨胀
    返回:

  • useQueueDelayedPriorityRequest

    public CrawTaskBuilder useQueueDelayedPriorityRequest(int delayInMilliseconds)
    使用延迟优先级队列。和QueuePriorityRequest类似。但QueueDelayedPriorityRequest额外提供了延迟抓取的功能 在一些由于请求频率过快而被封的站点上推荐使用QueueDelayedPriorityRequest
    參数:
    delayInMilliseconds - 每次取Request距离上次时间延迟delayInMilliseconds毫秒
    返回:

  • useTaskLifeListener

    public CrawTaskBuilder useTaskLifeListener(TaskLifeListener listener)
    设置监听器,监听爬虫的CrawlTask的onStart 和 onFinish。在此你能够发送邮件或者其它方式来知晓爬虫的运行情况
    參数:
    listener -
    返回:

  • useCookie

    public CrawTaskBuilder useCookie(java.util.Set<Cookie> cookies)
    设置Cookie,当Driver创建时设置cookies。

    在须要登录情况下你能够将登录好的Cookies注入downloader

    參数:
    listener -
    返回:

  • addChromeDriverLifeListener

    public void addChromeDriverLifeListener(ChromeDriverLifeListener chromeDriverLifeListener)
    当你使用ChromeDownloader作为下载器时能够设置ChromeDriverLifeListener
    參数:
    listener -
  • addWebDriverLifeListener

    public void addWebDriverLifeListener(WebDriverLifeListener webDriverLifeListener)
    当你使用WebDriverDownloader作为下载器时能够设置ChromeDriverLifeListener
    參数:
    listener -
  • addHttpClientLifeListener

    public void addHttpClientLifeListener(HttpClientLifeListener httpClientLifeListener)
    当你使用默认的DefaultPageDownloader作为下载器时能够设置HttpClientLifeListener
    參数:
    listener -
  • useProxyIpPool

    public CrawTaskBuilder useProxyIpPool(java.lang.Class<? extends ProxyIpPool> proxyIpPoolCls,
    int initSize,
    long pastTime,
    int max_use_count)
    使用代理IP切换机制时设置一个ProxyIpPool的实现类就可以。

    在封IP站点下推荐使用收费版代理IP效果更佳

    參数:
    proxyIpPoolCls -
    initSize - 每次代理IP缓冲池IP不足时载入IP的个数,推荐使用公式initSize=thread*5
    pastTime - 每一个IP自身的过期时间,当代理IP过期时间到的时候会被清除。这个值依据代理IP的质量决定
    max_use_count - 每一个代理IP最多使用的次数。推荐使用公式max_use_count=(目标站点连续请求才被封的次数)减去 2到3
    返回:

  • useProxyIpPoolInstance

    public CrawTaskBuilder useProxyIpPoolInstance(ProxyIpPool proxyIpPool)
    当然你也能够自己构造一个实例设置ProxyIpPool
    參数:
    proxyIpPool -
    返回:

    抛出:
    java.lang.SecurityException
    java.lang.NoSuchMethodException
  • useTimer

    public final CrawTaskBuilder useTimer(int hour,
    long period,
    int endHour)
    使用定时循环启动,使用24小时制
    參数:
    hour - 从几点開始启动,假设当前时间小于改时间则等待到改时间启动
    period - 每次抓取时间间隔 单位毫秒
    endHour - 到几点结束
    返回:

  • useDownloadFileThread

    public CrawTaskBuilder useDownloadFileThread(int thread)
    设置同一时候下载文件的线程数 ,默认3个线程
    參数:
    thread -
    返回:
    CrawTaskBuilder
  • useDownloadFileDelayTime

    public CrawTaskBuilder useDownloadFileDelayTime(int millisecond)
    文件下载延迟,默认300ms
    參数:
    millisecond -
    返回:

  • build

    public CrawlTask build()
    配置完毕。就可以创建CrawlTask
    返回:
    CrawlTask

GuozhongCrawler系列教程 (2) CrawTaskBuilder具体解释的更多相关文章

  1. GuozhongCrawler系列教程 (1) 三大PageDownloader

    GuozhongCrawler  QQ群 202568714 教程源代码下载地址:http://pan.baidu.com/s/1pJBmerL GuozhongCrawler内置三大PageDown ...

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

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

  3. GuozhongCrawler系列教程 (5) TransactionRequest具体解释

    为了实现和维护并发抓取的属性信息提供线程安全的事务请求.TransactionRequest是一个抽象类自己不能设置Processor,却须要实现 TransactionCallBack接口.Tran ...

  4. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  5. C#微信公众号开发系列教程二(新手接入指南)

    http://www.cnblogs.com/zskbll/p/4093954.html 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可 ...

  6. 【ASP.NET Identity系列教程(一)】ASP.NET Identity入门

    注:本文是[ASP.NET Identity系列教程]的第一篇.本系列教程详细.完整.深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序 ...

  7. 【ASP.NET Identity系列教程(二)】运用ASP.NET Identity

    注:本文是[ASP.NET Identity系列教程]的第二篇.本系列教程详细.完整.深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序 ...

  8. 【ASP.NET Identity系列教程(三)】Identity高级技术

    注:本文是[ASP.NET Identity系列教程]的第三篇.本系列教程详细.完整.深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序 ...

  9. 随笔分类 - 无废话ExtJs系列教程

    随笔分类 - 无废话ExtJs系列教程 摘自:http://www.cnblogs.com/iamlilinfeng/category/385121.html ExtJs 入门教程 摘要: extjs ...

随机推荐

  1. POJ 2367 Genealogical tree【拓扑排序/记录路径】

    Genealogical tree Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7101 Accepted: 4585 Spe ...

  2. HttpServletRequest接口

    package com.hongdian; import java.util.Enumeration; import java.io.IOException; import javax.servlet ...

  3. 学习LSM(Linux security module)之三:Apparmor的前世今生和基本使用

    感冒了,感觉一脑子浆糊,真是蛋疼. 先粗略讲一些前置知识. 一:MAC和DAC DAC(Discretionary Access Control),自主访问控制,是最常用的一类访问控制机制,意思为主体 ...

  4. 16、Flask实战第16天:Flask文件上传

    上传文件 这里以图片来演示flask如何上传文件 首先来写个简单的前端页面upload.html, 在里面写个文件上传的表单 后端debug断点调试 获取到文件后,当然,我们需要把文件保存下来.在项目 ...

  5. [BZOJ4530]大融合

    LCT维护子树信息 维护两个子树信息,$vinf_x$表示节点$x$的所有轻儿子子树信息,$inf_x$表示以$x$为根的LCT子树(包含虚边)的信息 对$vinf$: access时,断开$x$的原 ...

  6. 【带修莫队】bzoj2120 数颜色

    块大小为n2/3. 把询问和修改分开. 每次两个询问之间的修改进行暴力转移,如果修改在上一次询问的区间里,就会对当前状态形成影响. 好慢. #include<cstdio> #includ ...

  7. 指定等级 Exercise07_01

    import java.util.Scanner; /** * @author 冰樱梦 * 时间:2018年下半年 * 题目:指定等级 * */ public class Exercise07_01 ...

  8. Mybatis添加&&删除&&更新

    mapper <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC & ...

  9. WebApi_HelpPage

        HelpPage是描述WebApi接口信息的Web页,根据项目编译的Xml文件生成,包括接口的Router地址.请求参数.请求参数示例.响应参数.响应参数示例等,可方便调用方快速了解接口信息 ...

  10. webpack 打包压缩 ES6文件报错UglifyJs + Unexpected token punc «(», expected punc