我使用Crawler4j爬蟲爬取一些domains.Now我想要提高抓取工具的效率,我希望我的抓取工具使用我的完整帶寬並抓取儘可能多的url在給定爲此,我正在採取以下設置: -提高Crawler4j-Crawler效率,可伸縮性
- 我增加了no。
- 我已禮貌延遲減小到50毫秒(使用Crawlconfig.setpolitenessdelay(50););履帶線程10(使用此功能ContentCrawler( 'classfilename',10))的
- 我給爬行的深度如2(使用Crawlconfig.setMaxDepthOfCrawling(2))
現在我想知道的是: -
1)是否有任何副作用,這些種類的設置。
2)除此之外,我還有什麼需要做的,以便提高履帶車速度。
3)有人可以告訴我每個設置的最大限制(例如: - 一次支持crawler4j的最大線程數等)。因爲我已經瀏覽了Crawler4j的代碼,但是我沒有找到任何限制任何地方。
4)如何抓取域名而不檢查它的robots.txt文件。因爲我明白crawler4j首先檢查域名的robots.txt文件,然後才能抓取。我不想那麼做!
5)如何頁面提取器作品(請簡單介紹一下它)
任何幫助表示讚賞,並請寬容我,如果這個問題是愚蠢的。
感謝Tobias對你的回答。你已經回答了我的大部分問題,他們的工作很好。但我不明白你的答案。 這可以解釋得更清楚。 – 2014-10-07 06:49:36
對1.c的解釋: - 是的,你說的是絕對正確的。我們已經完成對一個域的爬行的速度,取決於深度爬行。這是我提到的! – 2014-10-07 06:56:14
如果您開始抓取,抓取工具會自行初始化,從數據庫中獲取一些URL,開始抓取一個,解析這個URL然後在某個時間點到達Crawler.class中的「訪問(頁面)」方法。您不應該執行任何類似I/O或其他代碼,這將在整個爬行過程中花費很長時間,因爲這會阻止您的爬蟲線程。不要將複雜的對象添加到爬網程序內部使用的類,例如WebURL或Page。 – 2014-10-07 07:41:31