上手簡(jiǎn)單,功能強(qiáng)大的Python爬蟲(chóng)框架——feapder
簡(jiǎn)介
feapder 是一款上手簡(jiǎn)單,功能強(qiáng)大的Python爬蟲(chóng)框架,使用方式類(lèi)似scrapy,方便由scrapy框架切換過(guò)來(lái),框架內(nèi)置3種爬蟲(chóng):
- AirSpider爬蟲(chóng)比較輕量,學(xué)習(xí)成本低。面對(duì)一些數(shù)據(jù)量較少,無(wú)需斷點(diǎn)續(xù)爬,無(wú)需分布式采集的需求,可采用此爬蟲(chóng)。
- Spider是一款基于redis的分布式爬蟲(chóng),適用于海量數(shù)據(jù)采集,支持?jǐn)帱c(diǎn)續(xù)爬、爬蟲(chóng)報(bào)警、數(shù)據(jù)自動(dòng)入庫(kù)等功能
- BatchSpider是一款分布式批次爬蟲(chóng),對(duì)于需要周期性采集的數(shù)據(jù),優(yōu)先考慮使用本爬蟲(chóng)。
feapder除了支持?jǐn)帱c(diǎn)續(xù)爬、數(shù)據(jù)防丟、監(jiān)控報(bào)警外,還支持瀏覽器渲染下載,自定義入庫(kù)pipeline,方便對(duì)接其他數(shù)據(jù)庫(kù)(默認(rèn)數(shù)據(jù)庫(kù)為Mysql,數(shù)據(jù)可自動(dòng)入庫(kù),無(wú)需編寫(xiě)pipeline)
讀音: [ˈfiːpdə]
- 官方文檔:http://feapder.com
- 國(guó)內(nèi)文檔:https://boris-code.gitee.io/feapder
- github:https://github.com/Boris-code/feapder
- 更新日志:https://github.com/Boris-code/feapder/releases
環(huán)境要求:
- Python 3.6.0+
- Works on Linux, Windows, macOS
安裝
From PyPi:
通用版
pip3 install feapder
完整版:
pip3 install feapder[all]
通用版與完整版區(qū)別:
完整版支持基于內(nèi)存去重
完整版可能會(huì)安裝出錯(cuò),若安裝出錯(cuò),請(qǐng)參考安裝問(wèn)題
小試一下
創(chuàng)建爬蟲(chóng)
feapder create -s first_spider
創(chuàng)建后的爬蟲(chóng)代碼如下:
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()
直接運(yùn)行,打印如下:
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 等待任務(wù) ...
FirstSpider|2021-02-09 14:55:14,620|air_spider.py|run|line:80|INFO| 無(wú)任務(wù),爬蟲(chóng)結(jié)束
代碼解釋如下:
- start_requests: 生產(chǎn)任務(wù)
- parse: 解析數(shù)據(jù)
將請(qǐng)求頭轉(zhuǎn)為json格式
爬蟲(chóng)采集中,我們經(jīng)常需要攜帶網(wǎng)站的header等參數(shù),比如:我們?cè)跒g覽器檢查工具看到某請(qǐng)求頭為:
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
如果我們想在發(fā)請(qǐng)求時(shí)攜帶這個(gè)header,那么需要手動(dòng)將其轉(zhuǎn)為json格式。
使用
輸入命令,回車(chē)
> feapder create -j 請(qǐng)輸入需要轉(zhuǎn)換的內(nèi)容:(xxx:xxx格式,支持多行)

輸出如下:

另外,feapder還支持創(chuàng)建有序字典,方便對(duì)比參數(shù)前后的變化
命令為:
feapder create -sj
以上就是上手簡(jiǎn)單,功能強(qiáng)大的Python爬蟲(chóng)框架——feapder的詳細(xì)內(nèi)容,更多關(guān)于Python 爬蟲(chóng)框架feapder的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
通過(guò)Python的jieba庫(kù)對(duì)文本進(jìn)行分詞
Python的jieba庫(kù)是一個(gè)中文分詞工具,它可以將一段中文文本分割成一個(gè)一個(gè)的詞語(yǔ),方便后續(xù)的自然語(yǔ)言處理任務(wù),如文本分類(lèi)、情感分析等,本文給大家介紹如何通過(guò)Python的jieba庫(kù)對(duì)文本進(jìn)行分詞,文中詳細(xì)的代碼示例,需要的朋友可以參考下2023-05-05
pycharm設(shè)置鼠標(biāo)懸停查看方法設(shè)置
在本文里小編給大家分享的是關(guān)于pycharm鼠標(biāo)懸停查看方法說(shuō)明怎么設(shè)置的相關(guān)知識(shí)點(diǎn),需要的朋友們參考學(xué)習(xí)下。2019-07-07
在linux系統(tǒng)下安裝python librtmp包的實(shí)現(xiàn)方法
今天小編就為大家分享一篇在linux系統(tǒng)下安裝python librtmp包的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
Python實(shí)現(xiàn)隨機(jī)森林回歸與各自變量重要性分析與排序
這篇文章主要為大家詳細(xì)介紹了在Python環(huán)境中,實(shí)現(xiàn)隨機(jī)森林(Random Forest,RF)回歸與各自變量重要性分析與排序的過(guò)程,感興趣的小伙伴可以了解一下2023-02-02
python統(tǒng)計(jì)字符串中指定字符出現(xiàn)次數(shù)的方法
這篇文章主要介紹了python統(tǒng)計(jì)字符串中指定字符出現(xiàn)次數(shù)的方法,涉及Python中count函數(shù)的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
python3使用logging包,如何把日志寫(xiě)到系統(tǒng)的rsyslog中
這篇文章主要介紹了python3使用logging包,如何把日志寫(xiě)到系統(tǒng)的rsyslog中的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
python使用any判斷一個(gè)對(duì)象是否為空的方法
這篇文章主要介紹了python使用any判斷一個(gè)對(duì)象是否為空的方法,并給出了改進(jìn)的方法供大家對(duì)比參考,具有一定的借鑒價(jià)值,需要的朋友可以參考下2014-11-11

