一、Scrapy介紹
Scrapy
是Python開發的一個快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點并從頁面中提取結構化的數據。Scrapy
用途廣泛,可以用于數據挖掘、監測和自動化測試。
? ——來源于百度百科
使用Scrapy爬取一個網頁需四步驟:
- 創建一個Scrapy項目;
- 定義Item容器;
- 編寫爬蟲;
- 儲存內容。
下圖展現的是Scrapy的架構,包括組件及在系統中發生的數據流(圖中綠色箭頭)。

引擎(Scrapy Engine)
爬蟲工作的核心,負責控制數據流在系統中所有組件中流動,并在相應動作發生時觸發事件。
調度器(Scheduler)
從引擎接受request并將他們入隊,以便之后引擎請求他們時提供給引擎。
下載器(Downloader)
下載器負責獲取頁面數據并提供給引擎,而后提供給spider。
爬蟲(Spiders)
用戶編寫用于分析由下載器返回的response,并提取出item和額外跟進的URL的類。
Item Pipeline負責處理被spider提取出來的item。典型的處理有清理、驗證及持久化(例如存取到數據庫中)。
接下來是兩個中間件,它們用于提供一個簡便的機制,通過插入自定義代碼來擴展Scrapy的功能。
下載器中間件(Downloader middlewares)
在引擎及下載器之間的特定鉤子(specific hook),處理Downloader傳遞給引擎的response。
Spider中間件(Spider middlewares)
在引擎及Spider之間的特定鉤子(specific hook),處理spider的輸入(就是接收來自下載器的response)和輸出(就是發送items給item pipeline以及發送requests給調度器)。
二、安裝
命令窗口輸入:pip install scrapy
,順利的話能安裝成功。安裝完成之后輸入scrapy
,出現如下圖所示,才表明完全安裝成功:
若不能一次性成功安裝,則需安裝對應版本的以下模塊:
pip install wheel
pip install lxml
# 安裝lxml3.8.0后,提示etree找不到;改安裝3.7.3版才解決這個問題
pip install pyOpenSSL
然后,http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下載相應版本的Twisted-17.5.0
。命令窗口切換到該文件所在目錄,pip
安裝,代碼如下:
pip install Twisted?17.5.0?cp36?cp36m?win32.whl # 包含后綴的文件全名
這樣,Scrapy
應該就能正常安裝了。
但是,有的電腦還是Scrapy
不能成功運行,提示沒有win32api
,則需安裝win32py
,下載地址:https://sourceforge.net/projects/pywin32/files/ ,下載相應版本的exe文件,運行,安裝成功后,Scrapy
就能成功運行了。
以上是我在安裝過程中遇到的問題,如果有其他錯誤,歡迎交流探討!
安裝只是第一步,后續將用Scrapy
創建項目,以便熟悉。