簡介
feapder 是一款上手簡單,功能強大的Python爬蟲框架,使用方式類似scrapy,方便由scrapy框架切換過來,框架內置3種爬蟲:
- AirSpider爬蟲比較輕量,學習成本低。面對一些數據量較少,無需斷點續爬,無需分布式采集的需求,可采用此爬蟲。
- Spider是一款基于redis的分布式爬蟲,適用于海量數據采集,支持斷點續爬、爬蟲報警、數據自動入庫等功能
- BatchSpider是一款分布式批次爬蟲,對于需要周期性采集的數據,優先考慮使用本爬蟲。
feapder除了支持斷點續爬、數據防丟、監控報警外,還支持瀏覽器渲染下載,自定義入庫pipeline,方便對接其他數據庫(默認數據庫為Mysql,數據可自動入庫,無需編寫pipeline)
讀音: [?fi?pd?]
- 官方文檔:http://feapder.com
- 國內文檔:https://boris-code.gitee.io/feapder
- github:https://github.com/Boris-code/feapder
- 更新日志:https://github.com/Boris-code/feapder/releases
環境要求:
- Python 3.6.0+
- Works on Linux, Windows, macOS
安裝
From PyPi:
通用版
1
|
pip3 install feapder |
完整版:
1
|
pip3 install feapder[ all ] |
通用版與完整版區別:
完整版支持基于內存去重
完整版可能會安裝出錯,若安裝出錯,請參考安裝問題
小試一下
創建爬蟲
1
|
feapder create - s first_spider |
創建后的爬蟲代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import feapder class FirstSpider(feapder.AirSpider): def start_requests( self ): yield feapder.Request( "https://www.baidu.com" ) def parse( self , request, response): print (response) if __name__ = = "__main__" : FirstSpider().start() |
直接運行,打印如下:
1
2
3
4
5
6
7
8
9
|
Thread - 2 | 2021 - 02 - 09 14 : 55 : 11 , 373 |request.py|get_response|line: 283 |DEBUG| - - - - - - - - - - - - - - FirstSpider.parse request for - - - - - - - - - - - - - - - - url = https: / / www.baidu.com method = GET body = { 'timeout' : 22 , 'stream' : True , 'verify' : False , 'headers' : { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36' }} <Response [ 200 ]> Thread - 2 | 2021 - 02 - 09 14 : 55 : 11 , 610 |parser_control.py|run|line: 415 |DEBUG| parser 等待任務 ... FirstSpider| 2021 - 02 - 09 14 : 55 : 14 , 620 |air_spider.py|run|line: 80 |INFO| 無任務,爬蟲結束 |
代碼解釋如下:
- start_requests: 生產任務
- parse: 解析數據
將請求頭轉為json格式
爬蟲采集中,我們經常需要攜帶網站的header等參數,比如:我們在瀏覽器檢查工具看到某請求頭為:
1
2
3
4
5
|
Accept - Encoding: gzip, deflate, br Accept - Language: zh - CN,zh;q = 0.9 ,en;q = 0.8 Cache - Control: max - age = 0 Connection: keep - alive User - Agent: Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_15_4 ) AppleWebKit / 537.36 (KHTML, like Gecko) Chrome / 89.0 . 4389.90 Safari / 537.36 |
如果我們想在發請求時攜帶這個header,那么需要手動將其轉為json格式。
使用
輸入命令,回車
1
2
|
> feapder create - j 請輸入需要轉換的內容:(xxx:xxx格式,支持多行) |
輸出如下:
另外,feapder還支持創建有序字典,方便對比參數前后的變化
命令為:
1
|
feapder create - sj |
以上就是上手簡單,功能強大的Python爬蟲框架——feapder的詳細內容,更多關于Python 爬蟲框架feapder的資料請關注服務器之家其它相關文章!
原文鏈接:https://github.com/Boris-code/feapder