2014-02-16 35 views
2

我正在運行crawler4j以查找一百萬個URL的狀態(http響應)代碼。 我還沒有設置任何過濾器來過濾要處理的URL。
我對90%的URL得到了正確的迴應,但輸出中缺少10%的URL。
它們甚至不出現在Webcrawler擴展類的handlePageStatusCode()方法中。 可能由於各種問題而未處理它們。
是否有可能找到那些缺失的URL來重新處理? 我們是否可以改進抓取過程而不錯過任何網址?Crawler4j - 許多URL被丟棄/未處理(輸出中缺少)

+0

如果你發現我的答案合適,你能接受嗎? – Chaiavi

回答

1

是的,我們有!

請使用最新版本的Crawler4j,因爲我添加了很多方法來捕獲不同類型的異常。

現在,當你擴展的WebCrawler,只是重寫很多方法可以重寫: https://github.com/yasserg/crawler4j/blob/master/src/main/java/edu/uci/ics/crawler4j/crawler/WebCrawler.java

例如像以下: onPageBiggerThanMaxSize onUnexpectedStatusCode onContentFetchError onUnhandledException 等

只是請注意那些方法被調用並且頁面由於某個原因而未被處理,因此再次將它作爲種子添加應該不會改變問題...

無論如何,最新版本的crawler4j可以處理很多頁面,所以只需升級到v4.1(當前)或更高版本,您就可以抓取更多頁面。