欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

scrapy+scrapyd+gerapy?爬蟲調(diào)度框架超詳細(xì)教程

 更新時間:2022年06月22日 09:52:05   作者:阿J~  
Scrapy吸引人的地方在于它是一個框架,任何人都可以根據(jù)需求方便的修改。它也提供了多種類型爬蟲的基類,如BaseSpider、sitemap爬蟲等,最新版本又提供了web2.0爬蟲的支持,這篇文章主要介紹了scrapy+scrapyd+gerapy?爬蟲調(diào)度框架超詳細(xì)教程,需要的朋友可以參考下

一、scrapy

1.1 概述

Scrapy,Python開發(fā)的一個快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)。Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘、監(jiān)測和自動化測試.

其最初是為了頁面抓取 (更確切來說, 網(wǎng)絡(luò)抓取 )所設(shè)計的, 后臺也應(yīng)用在獲取API所返回的數(shù)據(jù)(例如 Amazon Associates Web Services ) 或者通用的網(wǎng)絡(luò)爬蟲.

Scrapy吸引人的地方在于它是一個框架,任何人都可以根據(jù)需求方便的修改。它也提供了多種類型爬蟲的基類,如BaseSpider、sitemap爬蟲等,最新版本又提供了web2.0爬蟲的支持.

1.2 構(gòu)成

Scrapy框架主要由五大組件組成,它們分別是調(diào)度器(Scheduler)、下載器(Downloader)、爬蟲(Spider)和實體管道(Item Pipeline)、Scrapy引擎(Scrapy Engine)。下面我們分別介紹各個組件的作用。

(1)、調(diào)度器(Scheduler):

調(diào)度器,說白了把它假設(shè)成為一個URL(抓取網(wǎng)頁的網(wǎng)址或者說是鏈接)的優(yōu)先隊列,由它來決定下一個要抓取的網(wǎng)址是 什么,同時去除重復(fù)的網(wǎng)址(不做無用功)。用戶可以自己的需求定制調(diào)度器。

(2)、下載器(Downloader):

下載器,是所有組件中負(fù)擔(dān)最大的,它用于高速地下載網(wǎng)絡(luò)上的資源。Scrapy的下載器代碼不會太復(fù)雜,但效率高,主要的原因是Scrapy下載器是建立在twisted這個高效的異步模型上的(其實整個框架都在建立在這個模型上的)。

(3)、 爬蟲(Spider):

爬蟲,是用戶最關(guān)心的部份。用戶定制自己的爬蟲(通過定制正則表達(dá)式等語法),用于從特定的網(wǎng)頁中提取自己需要的信息,即所謂的實體(Item)。 用戶也可以從中提取出鏈接,讓Scrapy繼續(xù)抓取下一個頁面。

(4)、 實體管道(Item Pipeline):

實體管道,用于處理爬蟲(spider)提取的實體。主要的功能是持久化實體、驗證實體的有效性、清除不需要的信息。

(5)、Scrapy引擎(Scrapy Engine):

Scrapy引擎是整個框架的核心.它用來控制調(diào)試器、下載器、爬蟲。實際上,引擎相當(dāng)于計算機(jī)的CPU,它控制著整個流程。

1.3 安裝和使用

安裝

pip install scrapy(或pip3 install scrapy)

使用

創(chuàng)建新項目:scrapy startproject 項目名
創(chuàng)建新爬蟲:scrapy genspider 爬蟲名 域名
啟動爬蟲: scrapy crawl 爬蟲名

二、scrapyd

2.1 簡介

scrapyd是一個用于部署和運行scrapy爬蟲的程序,它允許你通過JSON API來部署爬蟲項目和控制爬蟲運行,scrapyd是一個守護(hù)進(jìn)程,監(jiān)聽爬蟲的運行和請求,然后啟動進(jìn)程來執(zhí)行它們

2.2 安裝和使用

安裝

pip install scrapyd(或pip3 install scrapyd)
pip install scrapyd-client(或pip3 install scrapyd-client)

文件配置

vim /usr/local/python3/lib/python3.7/site-packages/scrapyd/default_scrapyd.conf

啟動

scrapyd

訪問 ip:6800,出現(xiàn)此頁面則啟動成功

三、gerapy

3.1 簡介

Gerapy 是一款分布式爬蟲管理框架,支持 Python 3,基于 Scrapy、Scrapyd、Scrapyd-Client、Scrapy-Redis、Scrapyd-API、Scrapy-Splash、Jinjia2、Django、Vue.js 開發(fā),Gerapy 可以幫助我們:

  • 方便地控制爬蟲運行
  • 直觀地查看爬蟲狀態(tài)
  • 實時地查看爬取結(jié)果
  • 簡單地實現(xiàn)項目部署
  • 統(tǒng)一地實現(xiàn)主機(jī)管理
  • 輕松地編寫爬蟲代碼

3.2 安裝使用

安裝

pip install gerapy(或pip3 install gerapy)

安裝完后先建立軟鏈接

ln -s /usr/local/python3/bin/gerapy /usr/bin/gerapy

初始化

gerapy init

初始化數(shù)據(jù)庫

cd gerapy
gerapy migrate

報錯sqllite 版本過低

解決辦法:升級sqllite

下載
wget https://www.sqlite.org/2019/sqlite-autoconf-3300000.tar.gz --no-check-certificate
tar -zxvf sqlite-autoconf-3300000.tar.gz
安裝
mkdir /opt/sqlite
cd sqlite-autoconf-3300000
./configure --prefix=/opt/sqlite
make && make install
建立軟連接
mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
ln -s /opt/sqlite/bin/sqlite3 /usr/bin/sqlite3
echo “/usr/local/lib” > /etc/ld.so.conf.d/sqlite3.conf
ldconfig
vim ~/.bashrc 添加 export LD_LIBRARY_PATH=“/usr/local/lib”
source ~/.bashrc
查看當(dāng)前sqlite3的版本
sqlite3 --version

重新初始化gerapy 數(shù)據(jù)庫

配置賬密

gerapy createsuperuser

啟動gerapy

gerapy runserver
gerapy runserver 0.0.0.0:9000  # 外部訪問 9000端口啟動

由于沒有啟動scrapy 這里的主機(jī)未0

啟動scrapyd后,配置scrapyd的主機(jī)信息

配置成功后就會加入到主機(jī)列表里

四、scrapy+scrapyd+gerapy的結(jié)合使用

4.1 創(chuàng)建scrapy項目

進(jìn)到gerapy的項目目錄

cd ~/gerapy/projects/

然后新建一個scrapy項目

scrapy startproject gerapy_test
scrapy genspider baidu_test www.baidu.com

修改scrapy.cfg 如下

在使用scrapyd-deploy 上傳到scrapyd,先建立軟連接再上傳

ln -s /usr/local/python3/bin/scrapyd-deploy /usr/bin/scrapyd-deploy
scrapyd-deploy app -p gerapy_test

4.2 部署打包scrapy項目

然后再gerapy頁面上可以看到我們新建的項目,再打包一下

運行之前還需修改下scrapy代碼

修改完后再運行代碼

4.3 運行

運行成功,本次的部署就ok了!

五、填坑

5.1 運行scrapy爬蟲報錯

解決辦法:修改lzma源代碼如下

try:
    from _lzma import *
    from _lzma import _encode_filter_properties, _decode_filter_properties
except ImportError:
    from backports.lzma import *
    from backports.lzma import _encode_filter_properties, _decode_filter_properties

5.2 scrapyd 運行 scrapy 報錯

解決辦法:降低scrapy版本 pip3 install scrapy==2.5.1

到此這篇關(guān)于scrapy+scrapyd+gerapy 爬蟲調(diào)度框架超詳細(xì)教程的文章就介紹到這了,更多相關(guān)scrapy+scrapyd+gerapy 爬蟲調(diào)度框架內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python argparse中的action=store_true用法小結(jié)

    Python argparse中的action=store_true用法小結(jié)

    這篇文章主要介紹了Python argparse中的action=store_true用法小結(jié),本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • 對pandas通過索引提取dataframe的行方法詳解

    對pandas通過索引提取dataframe的行方法詳解

    今天小編就為大家分享一篇對pandas通過索引提取dataframe的行方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • python paramiko利用sftp上傳目錄到遠(yuǎn)程的實例

    python paramiko利用sftp上傳目錄到遠(yuǎn)程的實例

    今天小編就為大家分享一篇python paramiko利用sftp上傳目錄到遠(yuǎn)程的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python argparse命令參數(shù)與config配置參數(shù)示例深入詳解

    Python argparse命令參數(shù)與config配置參數(shù)示例深入詳解

    這篇文章主要介紹了Python argparse命令參數(shù)與config配置參數(shù),argparse是Python內(nèi)置的一個用于命令項選項與參數(shù)解析的模塊,通過在程序中定義好我們需要的參數(shù),然后在程序啟動命令行傳遞我們想要改變的參數(shù)
    2023-03-03
  • python tkinter實現(xiàn)彩球碰撞屏保

    python tkinter實現(xiàn)彩球碰撞屏保

    這篇文章主要為大家詳細(xì)介紹了python tkinter實現(xiàn)彩球碰撞屏保,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Python面向?qū)ο蟮娜筇匦苑庋b、繼承、多態(tài)

    Python面向?qū)ο蟮娜筇匦苑庋b、繼承、多態(tài)

    這篇文章介紹了Python面向?qū)ο蟮娜筇匦苑庋b、繼承、多態(tài),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 利用pandas按日期做分組運算的操作

    利用pandas按日期做分組運算的操作

    這篇文章主要介紹了利用pandas按日期做分組運算的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python bsonrpc源碼解讀

    Python bsonrpc源碼解讀

    這篇文章主要介紹了Python bsonrpc源碼的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • python爬蟲超時的處理的實例

    python爬蟲超時的處理的實例

    今天小編就為大家分享一篇python爬蟲超時的處理的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 學(xué)習(xí)Django知識點分享

    學(xué)習(xí)Django知識點分享

    在本篇文章里小編給大家整理的是關(guān)于學(xué)習(xí)Django的一些心得知識點,對此有興趣的朋友們可以參考下。
    2019-09-09

最新評論