Scrapy源码阅读分析_1_整体框架和流程介绍
?
From:https://blog.csdn.net/weixin_37947156/article/details/74435304
Scrapy github 下載地址:https://github.com/scrapy/scrapy
?
?
介紹
?
Scrapy是一個基于Python編寫的一個開源爬蟲框架,它可以幫你快速、簡單的方式構建爬蟲,并從網站上提取你所需要的數據。
這里不再介紹Scrapy的安裝和使用,本系列主要通過閱讀源碼講解Scrapy實現思路為主。
如果有不懂如何使用的同學,請參考官方網站或官方文檔學習。
------------------------------------------------------------------------------------------
scrapy?中文文檔 和 scrapy 英文文檔參照看。因為中文文檔比較老,英文文檔是最新的。
scrapy 英文文檔:https://doc.scrapy.org/en/latest
scrapy 中文文檔:http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html
高性能爬蟲 Scrapy 框架:https://www.cnblogs.com/wwg945/articles/9021888.html
------------------------------------------------------------------------------------------
簡單來說構建和運行一個爬蟲只需完成以下幾步:
經過簡單的幾行代碼,就能采集到某個網站下一些頁面的數據,非常方便。
但是在這背后到底發生了什么?Scrapy到底是如何幫助我們工作的呢?
?
?
?
架構
?
來看一看 Scrapy 的架構圖:
?
?
?
核心組件
?
Scrapy有以下幾大組件:
除此之外,還有兩大中間件組件:
?
?
?
數據流轉
?
按照架構圖的序號,數據流轉大概是這樣的:
?
?
?
核心組件交互圖
?
我在讀完源碼后,整理出一個更詳細的架構圖,其中展示了更多相關組件的細節:
這里需要說明一下圖中的Scrapyer,其實這也是在源碼的一個核心類,但官方架構圖中沒有展示出來,這個類其實是處于Engine、Spiders、Pipeline之間,是連通這3個組件的橋梁,后面在文章中會具體講解。
?
?
?
核心類圖
?
涉及到的一些核心類如下:
其中標沒有樣式的黑色文字是類的核心屬性,黃色樣式的文字都是核心方法。
可以看到,Scrapy的核心類,其實主要包含5大組件、4大中間件管理器、爬蟲類和爬蟲管理器、請求、響應對象和數據解析類這幾大塊。
?
?
?
總結
以上是生活随笔為你收集整理的Scrapy源码阅读分析_1_整体框架和流程介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux系统编程——I/O多路复用se
- 下一篇: 从零开始——PowerShell应用入门