上手簡單,功能強大的Python爬蟲框架——feapder

簡介

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:

通用版

pip3 install feapder

完整版:

pip3 install feapder[all]

通用版與完整版區別:

完整版支持基於內存去重

完整版可能會安裝出錯,若安裝出錯,請參考安裝問題

小試一下

創建爬蟲

feapder create -s first_spider

創建後的爬蟲代碼如下:

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()

直接運行,打印如下:

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等參數,比如:我們在瀏覽器檢查工具看到某請求頭為:

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格式。

使用

輸入命令,回車

> feapder create -j
請輸入需要轉換的內容:(xxx:xxx格式,支持多行)

輸出如下:

另外,feapder還支持創建有序字典,方便對比參數前後的變化

命令為:

feapder create -sj

以上就是上手簡單,功能強大的Python爬蟲框架——feapder的詳細內容,更多關於Python 爬蟲框架feapder的資料請關註WalkonNet其它相關文章!