這一系列文章是我在閱讀「Python3網絡爬蟲開發實踐」一書以及其餘線上資料學習爬蟲過程當中的一些筆記和心得,但願能分享給你們。css
章節概述:Scrapy相關知識點彙總html
章節結構:git
具體內容:github
Engine:引擎,處理整個系統的數據流,觸發事務
Item:項目,定義爬取結果的數據結構
Scheduler:調度器,接受引擎發過來的請求並將其加入隊列中,等引擎再次請求,提供任務給引擎
Downloader:下載器
Spider:蜘蛛定義爬取邏輯和解析規則,提取結果
Item Pipeline:項目管道,負責處理蜘蛛從網頁中抽取的項目,清洗,驗證和存儲數據
Downloader Middlewares:下載器中間件,位於引擎和下載器之間的狗子框架,處理引擎與下載器之間的請求及響應
數據流:Engine open site -- Engine send URL to spider -- Engine give next URL to Scheduler -- Scheduler return URL to Engine -- Engine give URL to downloader through downloader middleware -- Spider handle result from downloader -- Engine pass result from spider to item pipeline -- iteration...數據庫
1.安裝Scrapy,MongoDB,pymongo:https://docs.scrapy.org/en/la...
2.scrapy startproject project_name : https://docs.scrapy.org/en/la...
3.建立Spider
4.建立Item
5.解析Response
6.使用Item
7.後續request:實現迭代
8.運行
9.存儲文件和使用item pipeline服務器
https://docs.scrapy.org/en/la...網絡
Spider類的實例能夠用於定義爬取網頁的動做,分析網頁,結果分析。同時能夠傳入名稱,許可的域名,和其餘爬取相關的參數。
https://github.com/Python3Web...數據結構
Scheduler從隊列拿出一個Request給Downloader執行下載,這個過程會通過Downloader Middleware的處理。Downloader將Request下載完成獲得的Response返回給Spider時會再次通過Download Middleware處理。
核心方法:
process_request
process_response
process_exception
https://github.com/Python3Web...架構
主要用於處理Spider的鉤子架構。Downloader生成Response後,響應會被髮送給Spider,發送以前會由Spider Middleware預處理。框架
Spider產生Item,處理完Response後,item會發送到Item Pipeline。用於清理HTML數據,驗證爬取數據,檢查爬取字段,查重並丟棄重複內容,將爬取結果保存到數據庫。核心方法:
process_item
open_spider
close_spider
from_crawler
https://github.com/Python3Web...
https://docs.scrapy.org/en/la...
提供了HTTP接口。經過HTTP接口調度Scrapy任務。
Source code entrance: https://github.com/Python3Web...
1.搭建Redis服務器2.部署代理池和Cookies池3.配置Scrapy-Redis4.配置存儲目標-MongoDB5.Scrapyd: 運行Scrapt的服務程序提供一系列HTTP接口幫助部署啓動中止刪除爬蟲程序。