Spider-scrapy斷點續爬


scrapy的每一個爬蟲,暫停時可以記錄暫停狀態以及爬取了哪些url,重啟時可以從暫停狀態開始爬取過的URL不在爬取

實現暫停與重啟記錄狀態

方法一:

1、首先cd進入到scrapy項目里(當然你也可以通過編寫腳本Python文件直接在pycharm中運行)

2、在scrapy項目里創建保存記錄信息的文件夾

3、執行命令:

  scrapy crawl 爬蟲名稱 -s JOBDIR=保存記錄信息的路徑

  如:scrapy crawl xxx -s JOBDIR=xxx/xxx

  執行命令會啟動指定爬蟲,並且記錄狀態到指定目錄

爬蟲已經啟動,我們可以按鍵盤上的ctrl+c停止爬蟲,停止后我們看一下記錄文件夾,會多出3個文件,其中的requests.queue文件夾里的p0文件就是URL記錄文件,這個文件存在就說明還有未完成的URL,當所有URL完成后會自動刪除此文件

當我們重新執行命令:scrapy crawl xxx -s JOBDIR=xxx/xxx  時爬蟲會根據p0文件從停止的地方開始繼續爬取。

方法二:

在settings.py文件里加入下面的代碼: 

JOBDIR='xxx.com'
使用命令scrapy crawl xxxspider,就會自動生成一個xxx.com的目錄,然后將工作列表放到這個文件夾里 

 

以上這兩個方法,有時候並不是非常有效,之前項目中用到這兩種方法,遇到的問題也不少,比如說有時候會發現無法用ctri+終止,或者是再次啟動的時候發現爬蟲無法正常爬取,開始即結束,當你第二次輸入啟動命令啟動時爬蟲會覆蓋掉原來的數據,重新開始,起不到很好的暫停重啟的效果。當時推測這個問題出現的原因可能是爬取的數據較少引起的,但是后來發現並不是,也一直在找這個問題出現的原因。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM