爬蟲斷點爬取

  • 有些情況下,例如爬取大的站點,我們希望能暫停爬取,之后再恢復運行。
  • Scrapy通過如下工具支持這個功能:

一個把調度請求保存在磁盤的調度器
一個把訪問請求保存在磁盤的副本過濾器[duplicates filter]
一個能持續(xù)保持爬蟲狀態(tài)(鍵/值對)的擴展

  • Job 路徑:

要啟用持久化支持,你只需要通過 JOBDIR 設置 job directory 選項。
這個路徑將會存儲 所有的請求數(shù)據(jù)來保持一個單獨任務的狀態(tài)(例如:一次
spider爬取(a spider run))。必須要注意的是,這個目錄不允許被不同的
spider 共享,甚至是同一個spider的不同jobs/runs也不行。也就是說,
這個目錄就是存儲一個 單獨 job的狀態(tài)信息。

  • 怎么使用??? 要啟用一個爬蟲的持久化,運行以下命令:

scrapy crawl 爬蟲名稱 -s JOBDIR=crawls/爬蟲名稱

  • 然后,你就能在任何時候安全地停止爬蟲(按Ctrl-C或者發(fā)送一個信號,這時候會看到crawls文件夾下保存了一些文件)。恢復這個爬蟲也是同樣的命令:

scrapy crawl 爬蟲名稱 -s JOBDIR=crawls/爬蟲名稱

  • 運行代碼之后會默認生成以下文件:

spider.status : 爬蟲運行的狀態(tài)
requests.queue : 保存的請求的任務隊列
requests.seen : 保存的是指紋

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容