我在非常業餘的設置中使用crawler4j從網站抓取文章(以及用於內容抓取的boilerpipe)。在一些網站中,爬蟲工作非常整潔。但在其他情況下,它只是無法訪問網站(儘管我仍然可以使用jsoup獲取數據)。Crawler4j警告「無效的cookie標頭」導致抓取工具無法抓取該頁面
恰巧從同一個網站,某個網頁正在被抓取,而其他網頁卻沒有。它給這個警告,然後完全跳過該頁面:
Feb 11, 2016 5:05:31 PM org.apache.http.client.protocol.ResponseProcessCookies processCookies
WARNING: Invalid cookie header: "Set-Cookie: visid_incap_688991=7KCcJ/TxTWSEzP9k6OFX2eZqvFYAAAAAQUIPAAAAAAAHVw5Tx4mHCf3VQHK63tAN; expires=Fri, 09 Feb 2018 15:00:14 GMT; path=/; Domain=.banglatribune.com". Invalid 'expires' attribute: Fri, 09 Feb 2018 15:00:14 GMT
我可以從這個理解警告crawler4j正在做有關的cookie(它使用CookieSpecs.DEFAULT,我不能在任何改變它的東西辦法)。
是否有任何其他方式來管理httpclient而無需使用crawler4j one?
有什麼方法可以更改crawler4j中的cookie選項嗎?
crawler4j中的PageFetcher.java創建httpclient並處理所有cookie選項。
或者我應該使用另一個可以針對在cookie中使用錯誤格式的網站進行定製的抓取工具嗎?
任何幫助將非常感激。
我正在努力認證/ cookies和crawler4j我自己... 據我所知,它不是設計來管理你自己的HTTP客戶端。您可以克隆repo並重寫PageFetcher,然後向crawler4j的開發團隊建議更改。 不幸的是,我也不知道任何(對我來說)有用的替代方案。也許它們對你很有用:nutch或scrapy(python)。如果您發現其他人請留下評論 – divadpoc
我目前使用的是webmagic crawler,它沒有一些基本配置(比如抓取深度,抓取的最大頁數),但是很容易放入你想要的特徵,因爲它是設計非常好。 – d1xlord
只是關於webmagic的提示,完整的用戶指南是用中文書寫的。你總是可以使用谷歌翻譯,但對我來說,這足以理解底層的概念。 – d1xlord