GuozhongCrawler系列教程 (2) CrawTaskBuilder详解

CrawTaskBuilder是GuozhongCrawler中 CrawTask的建造者。为CrawlTask爬虫任务的创建增加了不少的便捷性。

方法详细资料

  • 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
时间: 2024-10-21 23:53:12

GuozhongCrawler系列教程 (2) CrawTaskBuilder详解的相关文章

GuozhongCrawler系列教程 (1) 三大PageDownloader

GuozhongCrawler  QQ群 202568714 教程源代码下载地址:http://pan.baidu.com/s/1pJBmerL GuozhongCrawler内置三大PageDownloader.各自是採用HttpClient作为内核下载的DefaultPageDownloader.採用HtmlUnitDriver作为内核下载WebDriverDownloader.採用ChromeDriver调用浏览器作为内核下载的ChromeDriverDownloader. 当中Defau

OAF_OAF EO系列增删改 - Delete详解和实现(案例)

2014-06-14 BaoXinjian 一.摘要 在OAF中,似乎不是根据你光标所在的行来删除对应的记录,而是根据记录指针来删除,而这个指针又与你的光标位置无关需要用代码来精确的定位.因此我们在删除记录时,需要编写一定的代码来实现. User’s Guide中提供了一种标准的删除方法,通过在在当前记录集中用指针进行循环来定位需要删除的记录(例子提供的是只删一条). 不管如何删除,总的实现思路如下: Step1. 首先给需要删除的记录做标记:  要么打勾选上,要么在行上放个图标按钮来点火,总之

Linux下nginx编译安装教程和编译参数详解

这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # yum install pcre* //如过你已经装了,请跳过这一步 2.安装openssl 需要ssl的支持,如果不需要ssl支持,请跳过这一步 复制代码代码如下: # yum install openssl* 3.gzip 类库安装 复制代码代码如下: yum install zlib zlib-

Flex3与java BlazeDS入门教程及其配置详解

原文:Flex3与java BlazeDS入门教程及其配置详解 源代码下载地址:http://www.zuidaima.com/share/1789445387160576.htm BlazeDS的下载和介绍: http://opensource.adobe.com/wiki/display/blazeds/Release+Builds(已经失效) 新的下载路径:http://sourceforge.net/adobe/wiki/Projects/或是http://www.pc6.com/sof

java io系列12之 BufferedInputStream详解

目录1. BufferedInputStream 介绍2. BufferedInputStream 源码分析(基于jdk1.7.40)3. 示例代码 BufferedInputStream 是缓冲输入流.它继承于FilterInputStream. BufferedInputStream 的作用是为另一个输入流添加一些功能,例如,提供"缓冲功能"以及支持"mark()标记"和"reset()重置方法".BufferedInputStream 本质

Nginx知多少系列之(三)配置文件详解

原文:Nginx知多少系列之(三)配置文件详解 目录 1.前言 2.安装 3.配置文件详解 4.工作原理 5.Linux下托管.NET Core项目 6.Linux下.NET Core项目负载均衡 7.Linux下.NET Core项目Nginx+Keepalived高可用(主从模式) 8.Linux下.NET Core项目Nginx+Keepalived高可用(双主模式) 9.Linux下.NET Core项目LVS+Keepalived+Nginx高可用集群 10.构建静态服务器 11.日志

转载爱哥自定义View系列--Paint详解

上图是paint中的各种set方法 这些属性大多我们都可以见名知意,很好理解,即便如此,哥还是带大家过一遍逐个剖析其用法,其中会不定穿插各种绘图类比如Canvas.Xfermode.ColorFilter等等的用法. set(Paint src) 顾名思义为当前画笔设置一个画笔,说白了就是把另一个画笔的属性设置Copy给我们的画笔,不累赘了 setARGB(int a, int r, int g, int b) 不扯了,别跟我说不懂 setAlpha(int a) 同上 setAntiAlias

大型网站架构系列:负载均衡详解(4)

本文是负载均衡详解的第四篇,主要介绍了LVS的三种请求转发模式和八种负载均衡算法,以及Haproxy的特点和负载均衡算法.具体参考文章,详见最后的链接. 三.LVS负载均衡 LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立,用来实现Linux平台下的简单负载均衡.LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器. 基于IP层的负载均衡调度技术,它在操作系统核心层上,将来自IP层的TCP/UDP请求均衡地转移到不同的 服务器,从而将一组

转载爱哥自定义View系列--文字详解

FontMetrics FontMetrics意为字体测量,这么一说大家是不是瞬间感受到了这玩意的重要性?那这东西有什么用呢?我们通过源码追踪进去可以看到FontMetrics其实是Paint的一个内部类,而它里面呢就定义了top,ascent,descent,bottom,leading五个成员变量其他什么也没有: 这五个成员变量除了top和bottom我们较熟悉外其余三个都很陌生是做什么用的呢?首先我给大家看张图: 这张图很简单但是也很扼要的说明了top,ascent,descent,bot

Yii2 教程 - yii2-redis 扩展详解

该教程已被合并到<Yii2 权威指南中文版>中!Yiichina 教程地址为<yii2-redis 扩展详解>! 一.简介 yii2-redis 扩展为 Yii2 框架提供了 redis 键值存储支持.包括缓存(Cache).会话存储处理(Session),并实现了 ActiveRecord 模式,允许您将活动记录存储在 redis 中. 相关链接 yii2-redis 扩展网址:https://github.com/yiisoft/yii2-redis 二.安装扩展 在 Yii2