GuozhongCrawler是分層架構。要快速學習CrawlTask獨立的配置多少要了解框架的源代碼。因此CrawTaskBuilder提供要更加扁平且易於理解的的方式建立CrawTaskjava
public CrawTaskBuilder useThread(int threadNum)
設置CrawlTask下載處理Request的線程數量web
參數:chrome
threadNum
-cookie
返回:網絡
CrawTaskBuilder架構
public CrawTaskBuilder usePipeline(java.lang.Class<? extends Pipeline> pipelineCls)
設置實現好的Pipeline類Class框架
參數:學習
pipelineCls
- 持久化處理類網站
返回:ui
CrawTaskBuilder
public CrawTaskBuilder usePageRetryCount(int retryCount)
若是因爲網絡問題,請求url時可能會出現失敗的狀況。那麼你設置最大從新請求的次數默認從新請求1次
參數:
retryCount
-
返回:
CrawTaskBuilder
public CrawTaskBuilder usePageEncoding(PageRequest.PageEncoding defaultEncoding)
通常抓取某個網站會有統一的編碼,若是你不想每次都調用PageRequest.setPageEncoding的話,那麼你能夠設置一個默認的編碼
返回:
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
-
返回:
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
-
返回:
public CrawTaskBuilder injectStartUrl(java.lang.String url, java.lang.Class<? extends PageProcessor> processorCls)
添加種子URL,並指定PageProcessor。 每一個injectStartUrl方法注入的種子URL會用一個單獨的StatContext包裝。若是StatContext在抓取過程當中不會產生較多新的跟進Request 那麼推薦你使用useDynamicEntrance設置入口URL將會更加提高效率
參數:
url
-
返回:
public CrawTaskBuilder useDynamicEntrance(java.lang.Class<? extends DynamicEntrance> dynamicEntranceCls)
若是你想在單個StartContext中直接初始化跟進URL,或者讓爬蟲分批註入種子的話。那麼DynamicEntrance提供了這樣的接口
參數:
dynamicEntranceCls
- DynamicEntrance的繼承實現類
返回:
public CrawTaskBuilder useQueuePriorityRequest()
使用優先級隊列,在一些抓取分頁較多情景下推薦使用QueuePriorityRequest。由於 它能很好的保證優先級高的Request優先被處理。從而防止隊列金字塔式的膨脹
返回:
public CrawTaskBuilder useQueueDelayedPriorityRequest(int delayInMilliseconds)
使用延遲優先級隊列,和QueuePriorityRequest相似。但QueueDelayedPriorityRequest額外提供了延遲抓取的功能 在一些由於請求頻率過快而被封的網站上推薦使用QueueDelayedPriorityRequest
參數:
delayInMilliseconds
- 每次取Request距離上次時間延遲delayInMilliseconds毫秒
返回:
public CrawTaskBuilder useTaskLifeListener(TaskLifeListener listener)
設置監聽器,監聽爬蟲的CrawlTask的onStart 和 onFinish。在此你能夠發送郵件或者其餘方式來知曉爬蟲的執行狀況
參數:
listener
-
返回:
public CrawTaskBuilder useCookie(java.util.Set<Cookie> cookies)
設置Cookie,當Driver建立時設置cookies。在須要登陸狀況下你能夠將登陸好的Cookies注入downloader
參數:
listener
-
返回:
public void addChromeDriverLifeListener(ChromeDriverLifeListener chromeDriverLifeListener)
當你使用ChromeDownloader做爲下載器時能夠設置ChromeDriverLifeListener
參數:
listener
-
public void addWebDriverLifeListener(WebDriverLifeListener webDriverLifeListener)
當你使用WebDriverDownloader做爲下載器時能夠設置ChromeDriverLifeListener
參數:
listener
-
public void addHttpClientLifeListener(HttpClientLifeListener httpClientLifeListener)
當你使用默認的DefaultPageDownloader做爲下載器時能夠設置HttpClientLifeListener
參數:
listener
-
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
返回:
public CrawTaskBuilder useProxyIpPoolInstance(ProxyIpPool proxyIpPool)
固然你也能夠本身構造一個實例設置ProxyIpPool
參數:
proxyIpPool
-
返回:
拋出:
java.lang.SecurityException
java.lang.NoSuchMethodException
public final CrawTaskBuilder useTimer(int hour, long period, int endHour)
使用定時循環啓動,使用24小時制
參數:
hour
- 從幾點開始啓動,若是當前時間小於改時間則等待到改時間啓動
period
- 每次抓取時間間隔 單位毫秒
endHour
- 到幾點結束
返回:
public CrawTaskBuilder useDownloadFileThread(int thread)
設置同時下載文件的線程數 ,默認3個線程
參數:
thread
-
返回:
CrawTaskBuilder
public CrawTaskBuilder useDownloadFileDelayTime(int millisecond)
文件下載延遲,默認300ms
參數:
millisecond
-
返回:
public CrawlTask build()
配置完成,便可建立CrawlTask
返回:
CrawlTask