zoukankan      html  css  js  c++  java
  • GuozhongCrawler系列教程 (2) CrawTaskBuilder具体解释

         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

  • 相关阅读:
    CodeForces 500C New Year Book Reading
    CodeForces 460B Little Dima and Equation 枚举
    CodeForces 451B Sort the Array
    【jquery】jQuery实现轮播图
    【IDEA】IDEA技巧记录
    【eclipse】日常使用eclipse记录
    【SSM】spring配置文件中读取配置文件的三种方式
    【Git】IDEA克隆和提交项目于码云
    semantic UI—表单验证
    【spring Data Jpa】JPA生成数据库表
  • 原文地址:https://www.cnblogs.com/lytwajue/p/7253437.html
Copyright © 2011-2022 走看看