基於python的scrapy爬蟲,關於增量爬取是怎麼處理的?

時間 2021-05-14 14:58:31

1樓:weni09

這個問題對於我個人非常有幫助,個人覺得自己寫中介軟體,對"url指紋資訊"及"頁面內容hash值"進行持久化(關聯式資料庫,redis,檔案都行,按需),下次爬取比較儲存好的url指紋資訊和頁面hash值,就可以減少重複爬取和重複更新資料。

2樓:

我是這麼做的:

1. 資料庫裡儲存抓取網頁的url欄位,寫乙個middleware,抓取乙個新頁面的時候先在middleware裡判斷一下資料庫裡是不是已經存在這個新頁面的url,不存在的才做處理。

2. 保險起見,資料庫裡的url欄位設定成unique索引。

3樓:靈魂機器

除了用 -s JOBDIR

=/tmp/progress

外,還可以使用這個 DeltaFetch 外掛程式GitHub - scrapy-plugins/scrapy-deltafetch: Scrapy spider middleware to ignore requests to pages containing items seen in previous crawls

文件看 Github 的專案主頁就足夠了

4樓:

時間線上出現了,這個已經提了很久的問題。 我不太清楚 scrapy 在問題剛提出來的時候是個什麼情況,但是在 14 年的時候, scrapy 的解決方案已經可以滿足絕大多數需求了。而且現在還有很不錯的文件可以查 -> Jobs:

pausing and resuming crawls 。

我覺得個人或者小團隊任務的話,基於 scrapy 還是很不錯的,可擴充套件性很好,比如說這裡有人說對 scrapy 預設的去重方案不滿意,那其實你可以用自己的替換掉 scrapy 預設的 -> python - how to filter duplicate requests based on url in scrapy 。不算是很難的事情。

當然,開源就是造輪子,對於造輪子我是鼓勵的,只要不讓我造就行了。

5樓:足兆叉蟲

我當初就是因為無法增量抓取所以放棄 scrapy 的。

因為我們的場景,定時更新,增量抓取是非常重要的,這要求很強 url 去重,排程策略邏輯。

而 scrapy 的記憶體去重實在是太簡陋了。

於是,pyspider 就這麼誕生了。。

6樓:halfjuice

目前似乎沒有官方方案,這裡有乙個非官方的patch,可以儲存scrapy的狀態,下次執行時恢復。

原帖在這裡http://

基於 Python 的雲平台有哪些?

最牛x的開源雲平台OpenStack是基於Python的,包括HP,Nicira,Rackspace等提供的雲服務全部都是基於OpenStack的。 鄭軍 可以參考下面URL 趙少君 其實基於python的雲平台現在出來不少了,我知道的有一下幾個 還有很多其他的 王俊峰 everydo.com,基於...

為什麼沒有一種基於python物件的shell,類似於powershell?

劉縉 NIX環境下,適合shell的使用場景的天花板其實很低。上面還有awk,Perl等一堆指令碼語言。雖然經常被吹噓成UNIX精髓,其實管道 shell程式設計擅長的事情就那麼些。只要你正經是個程式設計師,而不是只會shell,那稍微複雜的場景for root,dirs,files in os.w...

scrapy是爬蟲的核心嗎?

張凱強 不是的,Scrapy只是乙個好用的工具,你也可以用別的工具或自己創造新工具。爬蟲的核心是解決Web工程師給你設定的反爬機制,這一點是與人對抗的過程,很像網路安全攻防,所以需要的知識是無窮盡的,因為對方也會靈活改變對策。當解決了反爬,爬蟲本身的程式設計和資料處理流程都是大同小異的,Scrapy...