scrapy的每個爬蟲,暫停時能夠記錄暫停狀態以及爬取了哪些url,重啓時能夠從暫停狀態開始爬取過的URL不在爬取scrapy
實現暫停與重啓記錄狀態ide
方法一:url
一、首先cd進入到scrapy項目裏(固然你也能夠經過編寫腳本Python文件直接在pycharm中運行)pycharm
二、在scrapy項目裏建立保存記錄信息的文件夾requests
三、執行命令:request
scrapy crawl 爬蟲名稱 -s JOBDIR=保存記錄信息的路徑queue
如: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+終止,或者是再次啓動的時候發現爬蟲沒法正常爬取,開始即結束,當你第二次輸入啓動命令啓動時爬蟲會覆蓋掉原來的數據,從新開始,起不到很好的暫停重啓的效果。當時推測這個問題出現的緣由多是爬取的數據較少引發的,可是後來發現並非,也一直在找這個問題出現的緣由。