码迷,mamicode.com
首页 > 其他好文 > 详细

GuozhongCrawler系列教程 (2) CrawTaskBuilder详解

时间:2015-06-08 19:38:05      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

     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

GuozhongCrawler系列教程 (2) CrawTaskBuilder详解

标签:

原文地址:http://blog.csdn.net/u012572945/article/details/46415703

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!