scrapy 簡介python
scrapy 是使用python語言開發的網絡爬蟲框架。 具備下面幾個特色:網絡
設計簡單,用戶只須要簡單定義數據提取規則,讓scrapy完成抓取的工做,便可獲取數據。 提供豐富的插件擴展機制 開源,100%用python編寫(基於twisted框架) 官方文檔比較詳細框架
scrapy 主要組件scrapy
- scrapy engine, 控制整個爬蟲的運行,請求調度,spider調用,下載調用,信號事件觸發
- spider(蜘蛛), 用來解析頁面的類,解析後建立新的請求,或者建立數據結果集合
- scheduler(調度器), 負責管理請求(來自spider),存入隊列,執行時返回給 scrapy引擎
- Downloader(下載器),抓取頁面並返回結果給spider
- Item pipeline(item管道), 處理網頁中抽取的數據結果,進行清洗,校驗,存儲等操做
- Downloader middlewares(下載器中間件),下載器與spider之間的勾子,能夠對請求和響應的數據進行操做
- extensions(擴展),在scrapy啓動時初始化,提供加強的輔助功能
上面是我主要用到的一些組件,還有 spider middlerwares等沒包含在內ide
scrapy 運行機制url
- 引擎調用蜘蛛獲取第一個要抓取的url, 存入調度器
- 引擎從調度器獲取請求url(上面放入的url),
- 引擎傳遞請求 -> 下載中間件 -> 下載器
- 下載器下載頁面,響應結果 -> 下載中間件 -> 引擎
- 引擎把響應結果交給蜘蛛處理
- 蜘蛛處理響應,建立結果Item和新的請求
- 結果item交給 item管道處理
- 新的請求存入調度器,重複上面的操做