今天說一下 Scrapy架構 各元件的詳細設定。
關于Scrapy
Scrapy 是純Python語言實作的爬蟲架構,簡單、易用、拓展性高是其主要特點。這裡不過多介紹Scrapy的基本知識點,主要針對其高拓展性詳細介紹各個主要部件的配置方法。其實也不詳細,不過應該能滿足大多數人的需求了 : )。 當然,更多資訊可以仔細閱讀官方文檔。首先還是放一張 Scrapy資料流的圖供複習和參考。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CO2MzMiVjMzUWMlNmYzIjYxUWZwUTOwYzNycDO5gzNx8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
接下來進入正題,有些具體的示例以某瓣spider為例。
建立指令
如果想要建立全網爬取的便捷架構crawlspider,則用如下指令:
spider.py
首先介紹最核心的部件spider.py,廢話不多說,上代碼,看注釋
如果是全網爬取,則架構中spiders的部分開頭會略有差别
關鍵就是follow的設定了,是否到達既定深度和頁面需要自己把握。提一嘴,請求頭可以在三個地方設定,決定了請求頭的影響範圍
- 在settings中設定,範圍最大,影響整個架構的所有spider
- 在spiders類變量處設定,影響該spider的所有請求
- 在具體請求中設定,隻影響該request
三處設定的影響範圍實際就是從全局到單個爬蟲到單個請求。如果同時存在則單個請求的headers設定優先級最高!
items.py
middlewares.py
中間件就很靈性了,很多小夥伴也不一定用的到,但實際上在配置代理時很重要,一般需求不去配置SpiderMiddleware,主要針對DownloaderMiddleware進行修改
附上proxyhelper配置的代碼
pipelines.py
setting.py
極其關鍵的部件,注釋已經在代碼中标注
extends.py
自定義擴充,建議設定該部件需要對信号有了解,深入了解scrapy運作過程的信号觸發,實際還是需要對資料流了解的完善。代碼中我是利用自己寫的類,本質就是利用喵提醒在某些特定時刻觸發提醒(喵提醒打錢?)。當然也可以利用日志或者其他功能強化拓展功能,通過signal的不同觸發時刻針對性設定
需要自己建立,建立位置如圖:
running.py
runnings.py最後提一下吧,其實就是一個在python中運作cmd的指令
以上就是可以滿足基本需求的Scrapy各部件配置,如果還不熟悉的話可以參考,之後我們将更新一些Scrapy爬蟲實戰案例。
牛逼!一行代碼讓 pandas 的 apply 速度飙到極緻!
萬裡星空、皓月千裡、電閃雷鳴,各種天氣特效,算法一鍵生成
Python操作Excel 子產品,你猜哪家強?
終于來了!!Pyston v2.0 釋出,解決 Python 慢速的救星
2020年,那些已經死亡的公司
End
碼農更新
長按二維碼關注
你 點 的 每 個 在 看 , 我 都 認 真 當 成 了 喜 歡