GuozhongCrawler系列教程 (2) CrawTaskBuilder具体解释
     GuozhongCrawler是分层架构。要高速学习CrawlTask独立的配置多少要了解框架的源码。所以CrawTaskBuilder提供要更加扁平且易于理解的的方式创建CrawTask
方法具体资料
- 
useThreadpublic CrawTaskBuilder useThread(int threadNum) 设置CrawlTask下载处理Request的线程数量- 參数:
- threadNum-
- 返回:
- CrawTaskBuilder
 
- 
usePipelinepublic CrawTaskBuilder usePipeline(java.lang.Class<? extends Pipeline> pipelineCls) 设置实现好的Pipeline类Class- 參数:
- pipelineCls- 持久化处理类
- 返回:
- CrawTaskBuilder
 
- 
usePageRetryCountpublic CrawTaskBuilder usePageRetryCount(int retryCount) 假设因为网络问题。请求url时可能会出现失败的情况。那么你设置最大又一次请求的次数默认又一次请求1次- 參数:
- retryCount-
- 返回:
- CrawTaskBuilder
 
- 
usePageEncodingpublic CrawTaskBuilder usePageEncoding(PageRequest.PageEncoding defaultEncoding) 一般抓取某个站点会有统一的编码,假设你不想每次都调用PageRequest.setPageEncoding的话,那么你能够设置一个默认的编码- 返回:
 
 
- 
injectStartUrlpublic 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-
- 返回:
 
 
- 
injectStartUrlpublic 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-
- 返回:
 
 
- 
injectStartUrlpublic CrawTaskBuilder injectStartUrl(java.lang.String url, java.lang.Class<? extends PageProcessor> processorCls) 加入种子URL。并指定PageProcessor。 每一个injectStartUrl方法注入的种子URL会用一个单独的StatContext包装。假设StatContext在抓取过程中不会产生较多新的跟进Request 那么推荐你使用useDynamicEntrance设置入口URL将会更加提升效率- 參数:
- url-
- 返回:
 
 
- 
useDynamicEntrancepublic CrawTaskBuilder useDynamicEntrance(java.lang.Class<? extends DynamicEntrance> dynamicEntranceCls) 假设你想在单个StartContext中直接初始化跟进URL,或者让爬虫分批注入种子的话。那么DynamicEntrance提供了这种接口 - 參数:
- dynamicEntranceCls- DynamicEntrance的继承实现类
- 返回:
 
 
- 
useQueuePriorityRequestpublic CrawTaskBuilder useQueuePriorityRequest() 使用优先级队列。在一些抓取分页较多情景下推荐使用QueuePriorityRequest。由于 它能非常好的保证优先级高的Request优先被处理。从而防止队列金字塔式的膨胀- 返回:
 
 
- 
useQueueDelayedPriorityRequestpublic CrawTaskBuilder useQueueDelayedPriorityRequest(int delayInMilliseconds) 使用延迟优先级队列。和QueuePriorityRequest类似。但QueueDelayedPriorityRequest额外提供了延迟抓取的功能 在一些由于请求频率过快而被封的站点上推荐使用QueueDelayedPriorityRequest- 參数:
- delayInMilliseconds- 每次取Request距离上次时间延迟delayInMilliseconds毫秒
- 返回:
 
 
- 
useTaskLifeListenerpublic CrawTaskBuilder useTaskLifeListener(TaskLifeListener listener) 设置监听器,监听爬虫的CrawlTask的onStart 和 onFinish。在此你能够发送邮件或者其它方式来知晓爬虫的运行情况- 參数:
- listener-
- 返回:
 
 
- 
useCookiepublic CrawTaskBuilder useCookie(java.util.Set<Cookie> cookies) 设置Cookie,当Driver创建时设置cookies。在须要登录情况下你能够将登录好的Cookies注入downloader - 參数:
- listener-
- 返回:
 
 
- 
addChromeDriverLifeListenerpublic void addChromeDriverLifeListener(ChromeDriverLifeListener chromeDriverLifeListener) 当你使用ChromeDownloader作为下载器时能够设置ChromeDriverLifeListener- 參数:
- listener-
 
- 
addWebDriverLifeListenerpublic void addWebDriverLifeListener(WebDriverLifeListener webDriverLifeListener) 当你使用WebDriverDownloader作为下载器时能够设置ChromeDriverLifeListener- 參数:
- listener-
 
- 
addHttpClientLifeListenerpublic void addHttpClientLifeListener(HttpClientLifeListener httpClientLifeListener) 当你使用默认的DefaultPageDownloader作为下载器时能够设置HttpClientLifeListener- 參数:
- listener-
 
- 
useProxyIpPoolpublic 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
- 返回:
 
 
- 
useProxyIpPoolInstancepublic CrawTaskBuilder useProxyIpPoolInstance(ProxyIpPool proxyIpPool) 当然你也能够自己构造一个实例设置ProxyIpPool- 參数:
- proxyIpPool-
- 返回:
 
- 抛出:
- java.lang.SecurityException
- java.lang.NoSuchMethodException
 
- 
useTimerpublic final CrawTaskBuilder useTimer(int hour, long period, int endHour) 使用定时循环启动,使用24小时制- 參数:
- hour- 从几点開始启动,假设当前时间小于改时间则等待到改时间启动
- period- 每次抓取时间间隔 单位毫秒
- endHour- 到几点结束
- 返回:
 
 
- 
useDownloadFileThreadpublic CrawTaskBuilder useDownloadFileThread(int thread) 设置同一时候下载文件的线程数 ,默认3个线程- 參数:
- thread-
- 返回:
- CrawTaskBuilder
 
- 
useDownloadFileDelayTimepublic CrawTaskBuilder useDownloadFileDelayTime(int millisecond) 文件下载延迟,默认300ms- 參数:
- millisecond-
- 返回:
 
 
- 
buildpublic CrawlTask build() 配置完毕。就可以创建CrawlTask- 返回:
- CrawlTask
 
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号