爬蟲的步驟:傳送請求獲得響應→解析並提取資料→儲存資料
我們沿用這個樸素的邏輯去理解scrapy
一、傳送請求獲得響應
1、爬蟲傳送請求request到引擎
2、引擎將請求request傳遞給排程器scheduler佇列
3、排程器scheduler從請求佇列中向引擎輸送request
process_request(self, request, spider) 必須返回以下之一:
返回response:
則終止當前流程,也終止繼續呼叫其他process_request方法,將該response通過引擎返回給爬蟲
返回request:
則終止當前流程,也終止繼續呼叫其他process_request方法,將request返回給排程器,大多數情況是更換新的request請求
ignorerequest:
該異常就會交個process_exception方法進行處理; 如果沒有任何乙個方法處理該異常,那麼該請求就直接被忽略不會記錄錯誤日誌
process_request(self, request, spider)必須返回以下之一:
返回request:則中介軟體終止,該request返回引擎再給排程器
丟擲 ignorerequest 異常:該請求就被忽略了且不做記錄
6、引擎將response傳遞給爬蟲
二、解析並提取資料
7、爬蟲解析response,提取資料items或繼續向解析出來的url傳送請求給引擎
三、儲存資料
8、引擎將items傳遞給item pipeline,將請求傳遞給scheduler,繼續進行之前的步驟。
Scrapy執行過程
scrapy執行過程 1 建立爬蟲專案 scrapy startproject 專案名稱 2 建立爬蟲檔案 scrapy genspider 檔名稱 網域名稱 3 settings.py設定檔案中 user ageng ua偽裝 robotstxt obey false log level erro...
Scrapy 執行多個爬蟲
本文所使用的 scrapy 版本 scrapy 1.8.0 多個爬蟲 所有爬蟲 顯然,這兩種情況並不一定是等同的。假設當前專案下有 3 個爬蟲,分別名為 route dining experience,並在專案目錄下建立乙個main.py檔案,下面的示例 都寫在這個檔案中,專案執行時,在命令列下執行...
scrapy的安裝執行
方式一 直接在pycharm裡面的settigs projectinterpreter下面新增scrapy 方式二 方式一不可行,手動新增scrapy框架 第一步 安裝好conda和python 第二步 將conda配置到環境變數 第三步 在cmd安裝 conda install c conda f...