真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)-12、部署相關(guān)庫(kù)的安裝:Docker、Scrapyd

如果想要大規(guī)模抓取數(shù)據(jù),那么一定會(huì)用到分布式爬蟲,對(duì)于分布式爬蟲來說,我們一定需要多臺(tái)主機(jī),每臺(tái)主機(jī)多個(gè)爬蟲任務(wù),但是源代碼其實(shí)只有一份。那么我們需要做的就是將一份代碼同時(shí)部署到多臺(tái)主機(jī)上來協(xié)同運(yùn)行,那么怎么去部署就又是一個(gè)值得思考的問題。

創(chuàng)新互聯(lián)網(wǎng)站建設(shè)由有經(jīng)驗(yàn)的網(wǎng)站設(shè)計(jì)師、開發(fā)人員和項(xiàng)目經(jīng)理組成的專業(yè)建站團(tuán)隊(duì),負(fù)責(zé)網(wǎng)站視覺設(shè)計(jì)、用戶體驗(yàn)優(yōu)化、交互設(shè)計(jì)和前端開發(fā)等方面的工作,以確保網(wǎng)站外觀精美、網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)易于使用并且具有良好的響應(yīng)性。

對(duì)于 Scrapy 來說,它有一個(gè)擴(kuò)展組件叫做 Scrapyd,我們只需要安裝 Scrapyd 即可遠(yuǎn)程管理 Scrapy 任務(wù),包括部署源碼、啟動(dòng)任務(wù)、監(jiān)聽任務(wù)等操作。另外還有 ScrapydClient 和 ScrapydAPI 來幫助我們更方便地完成部署和監(jiān)聽操作。

另外還有一種部署方式就是 Docker 集群部署,我們只需要將爬蟲制作為 Docker 鏡像,只要主機(jī)安裝了 Docker,就可以直接運(yùn)行爬蟲,而無需再去擔(dān)心環(huán)境配置、版本問題。

本節(jié)我們就來介紹一下相關(guān)環(huán)境的配置過程。

Docker的安裝

Docker 是一種容器技術(shù),它可以將應(yīng)用和環(huán)境等進(jìn)行打包,形成一個(gè)獨(dú)立的,類似于 iOS 的 APP 形式的「應(yīng)用」,這個(gè)應(yīng)用可以直接被分發(fā)到任意一個(gè)支持 Docker 的環(huán)境中,通過簡(jiǎn)單的命令即可啟動(dòng)運(yùn)行。Docker 是一種最流行的容器化實(shí)現(xiàn)方案。和虛擬化技術(shù)類似,它極大的方便了應(yīng)用服務(wù)的部署;又與虛擬化技術(shù)不同,它以一種更輕量的方式實(shí)現(xiàn)了應(yīng)用服務(wù)的打包。使用 Docker 可以讓每個(gè)應(yīng)用彼此相互隔離,在同一臺(tái)機(jī)器上同時(shí)運(yùn)行多個(gè)應(yīng)用,不過他們彼此之間共享同一個(gè)操作系統(tǒng)。Docker 的優(yōu)勢(shì)在于,它可以在更細(xì)的粒度上進(jìn)行資源的管理,也比虛擬化技術(shù)更加節(jié)約資源。Python資源分享qun 784758214 ,內(nèi)有安裝包,PDF,學(xué)習(xí)視頻,這里是Python學(xué)習(xí)者的聚集地,零基礎(chǔ),進(jìn)階,都?xì)g迎
本段參考:DaoCloud官方文檔
對(duì)于爬蟲來說,如果我們需要大規(guī)模部署爬蟲系統(tǒng)的話,用 Docker 會(huì)大大提高效率,工欲善其事,必先利其器。
本節(jié)來介紹一下三大平臺(tái)下 Docker 的安裝方式。

1. 相關(guān)鏈接

  • 官方網(wǎng)站:https://www.docker.com
  • GitHub:https://github.com/docker
  • Docker Hub:https://hub.docker.com
  • 官方文檔:https://docs.docker.com
  • DaoCloud:http://www.daocloud.io
  • 中文社區(qū):http://www.docker.org.cn
  • 中文教程:http://www.runoob.com/docker/...
  • 推薦書籍:https://yeasy.gitbooks.io/doc...

2. Linux下的安裝

詳細(xì)的分步驟的安裝說明可以參見官方文檔:https://docs.docker.com/engin...。
在官方文檔中詳細(xì)說明了不同 Linux 系統(tǒng)的安裝方法,安裝流程根據(jù)文檔一步步執(zhí)行即可安裝成功。
但是為了使得安裝更加方便,Docker 官方還提供了一鍵安裝腳本,使用它會(huì)使得安裝更加便捷,不用再去一步步執(zhí)行命令安裝了,在此介紹一下一鍵腳本安裝方式。
首先是 Docker 官方提供的安裝腳本,相比其他腳本,官方提供的一定更靠譜,安裝命令如下:

curl -sSL https://get.docker.com/ | sh

只要執(zhí)行如上一條命令,等待一會(huì)兒 Docker 便會(huì)安裝完成,非常方便。
但是官方腳本安裝有一個(gè)缺點(diǎn),那就是慢,也可能下載超時(shí),所以為了加快下載速度,我們可以使用國(guó)內(nèi)的鏡像來安裝,所以在這里還有阿里云和 DaoCloud 的安裝腳本。
阿里云安裝腳本:

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

DaoCloud 安裝腳本:

curl -sSL https://get.daocloud.io/docker | sh

兩個(gè)腳本可以任選其一,速度都非常不錯(cuò)。
等待腳本執(zhí)行完畢之后,就可以使用 Docker 相關(guān)命令了,如運(yùn)行測(cè)試 Hello World 鏡像:

docker run hello-world

運(yùn)行結(jié)果:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
78445dd45222: Pull complete 
Digest: sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.

如果出現(xiàn)上文類似提示內(nèi)容則證明 Docker 可以正常使用了。

3. Mac下的安裝

Mac 平臺(tái)同樣有兩種選擇,Docker for Mac 和 Docker Toolbox。
Docker for Mac 要求系統(tǒng)為 OS X EI Captain 10.11 或更新,至少 4GB 內(nèi)存,如果你的系統(tǒng)滿足此要求,則強(qiáng)烈建議安裝 Docker for Mac。
可以使用 HomeBrew 安裝,安裝命令如下:

brew cask install docker
Python資源分享qun 784758214 ,內(nèi)有安裝包,PDF,學(xué)習(xí)視頻,這里是Python學(xué)習(xí)者的聚集地,零基礎(chǔ),進(jìn)階,都?xì)g迎

另外也可以手動(dòng)下載安裝包安裝,安裝包下載地址為:https://download.docker.com/m...
下載完成之后直接雙擊安裝包,然后將程序拖動(dòng)到應(yīng)用程序中即可。
點(diǎn)擊程序圖標(biāo)運(yùn)行 Docker,會(huì)發(fā)現(xiàn)在菜單欄中出現(xiàn)了 Docker 的圖標(biāo),如圖 1-83 中的第三個(gè)小鯨魚圖標(biāo):

Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)-12、部署相關(guān)庫(kù)的安裝:Docker、Scrapyd

圖 1-83 菜單欄
點(diǎn)擊圖標(biāo)展開菜單之后,再點(diǎn)擊 Start 按鈕即可啟動(dòng) Docker,啟動(dòng)成功便會(huì)提示 Docker is running,如圖 1-84 所示:

Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)-12、部署相關(guān)庫(kù)的安裝:Docker、Scrapyd

圖 1-84 運(yùn)行頁(yè)面
隨后我們就可以在命令行下使用 Docker 命令了。
可以使用如下命令測(cè)試運(yùn)行:

sudo docker run hello-world

運(yùn)行結(jié)果如圖 1-85 所示:

Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)-12、部署相關(guān)庫(kù)的安裝:Docker、Scrapyd

圖 1-85 運(yùn)行結(jié)果
如果出現(xiàn)類似輸出則證明 Docker 已經(jīng)成功安裝。
如果系統(tǒng)不滿足要求,可以下載 Docker Toolbox,其安裝說明為:https://docs.docker.com/toolb...。
關(guān)于 Docker for Mac 和 Docker Toolbox 的區(qū)別,可以參見:https://docs.docker.com/docke...。

4. 鏡像加速

安裝好 Docker 之后,在運(yùn)行測(cè)試命令時(shí),我們會(huì)發(fā)現(xiàn)它首先會(huì)下載一個(gè) Hello World 的鏡像,然后將其運(yùn)行,但是下載速度有時(shí)候會(huì)非常慢,這是因?yàn)樗J(rèn)還是從國(guó)外的 Docker Hub 下載的,所以為了提高鏡像的下載速度,我們還可以使用國(guó)內(nèi)鏡像來加速下載,所以這就有了 Docker 加速器一說。
推薦的 Docker 加速器有 DaoCloud 和阿里云。
DaoCloud:https://www.daocloud.io/mirror
阿里云:https://cr.console.aliyun.com...
不同平臺(tái)的鏡像加速方法配置可以參考 DaoCloud 的官方文檔:http://guide.daocloud.io/dcs/...。
配置完成之后,可以發(fā)現(xiàn)鏡像的下載速度會(huì)快非常多。
以上便是 Docker 的安裝方式說明。

Scrapyd的安裝

Scrapyd 是一個(gè)用于部署和運(yùn)行 Scrapy 項(xiàng)目的工具。有了它,你可以將寫好的 Scrapy 項(xiàng)目上傳到云主機(jī)并通過 API 來控制它的運(yùn)行。
既然是 Scrapy 項(xiàng)目部署,所以基本上都使用 Linux 主機(jī),所以本節(jié)的安裝是針對(duì)于 Linux 主機(jī)的。

1. 相關(guān)鏈接

  • GitHub:https://github.com/scrapy/scr...
  • PyPi:https://pypi.python.org/pypi/...
  • 官方文檔:https://scrapyd.readthedocs.io

2. Pip安裝

推薦使用 Pip 安裝,命令如下:

pip3 install scrapyd

3. 配置

安裝完畢之后需要新建一個(gè)配置文件 /etc/scrapyd/scrapyd.conf,Scrapyd 在運(yùn)行的時(shí)候會(huì)讀取此配置文件。
在 Scrapyd 1.2 版本之后不會(huì)自動(dòng)創(chuàng)建該文件,需要我們自行添加。
執(zhí)行命令新建文件:

sudo mkdir /etc/scrapyd
sudo vi /etc/scrapyd/scrapyd.conf

寫入如下內(nèi)容:

[scrapyd]
eggs_dir    = eggs
logs_dir    = logs
items_dir   =
jobs_to_keep = 5
dbs_dir     = dbs
max_proc    = 0
max_proc_per_cpu = 10
finished_to_keep = 100
poll_interval = 5.0
bind_address = 0.0.0.0
http_port   = 6800
debug       = off
runner      = scrapyd.runner
application = scrapyd.app.application
launcher    = scrapyd.launcher.Launcher
webroot     = scrapyd.website.Root

[services]
schedule.json     = scrapyd.webservice.Schedule
cancel.json       = scrapyd.webservice.Cancel
addversion.json   = scrapyd.webservice.AddVersion
listprojects.json = scrapyd.webservice.ListProjects
listversions.json = scrapyd.webservice.ListVersions
listspiders.json  = scrapyd.webservice.ListSpiders
delproject.json   = scrapyd.webservice.DeleteProject
delversion.json   = scrapyd.webservice.DeleteVersion
listjobs.json     = scrapyd.webservice.ListJobs
daemonstatus.json = scrapyd.webservice.DaemonStatus

配置文件的內(nèi)容可以參見官方文檔:https://scrapyd.readthedocs.i...,在這里的配置文件有所修改,其中之一是 max_proc_per_cpu 官方默認(rèn)為 4,即一臺(tái)主機(jī)每個(gè) CPU 最多運(yùn)行 4 個(gè)Scrapy Job,在此提高為 10,另外一個(gè)是 bind_address,默認(rèn)為本地 127.0.0.1,在此修改為 0.0.0.0,以使外網(wǎng)可以訪問。

4. 后臺(tái)運(yùn)行

由于 Scrapyd 是一個(gè)純 Python 項(xiàng)目,在這里可以直接調(diào)用 scrapyd 來運(yùn)行,為了使程序一直在后臺(tái)運(yùn)行,Linux 和 Mac 可以使用如下命令:

(scrapyd > /dev/null &)

這樣 Scrapyd 就會(huì)在后臺(tái)持續(xù)運(yùn)行了,控制臺(tái)輸出直接忽略,當(dāng)然如果想記錄輸出日志可以修改輸出目標(biāo),如:

(scrapyd > ~/scrapyd.log &)

則會(huì)輸出 Scrapyd 運(yùn)行輸出到 ~/scrapyd.log 文件中。
運(yùn)行之后便可以在瀏覽器的 6800 訪問 WebUI 了,可以簡(jiǎn)略看到當(dāng)前 Scrapyd 的運(yùn)行 Job、Log 等內(nèi)容,如圖 1-86 所示:

Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)-12、部署相關(guān)庫(kù)的安裝:Docker、Scrapyd

圖 1-86 Scrapyd 首頁(yè)
當(dāng)然運(yùn)行 Scrapyd 更佳的方式是使用 Supervisor 守護(hù)進(jìn)程運(yùn)行,如果感興趣可以參考:http://supervisord.org/。
另外 Scrapyd 也支持 Docker,在后文我們會(huì)介紹 Scrapyd Docker 鏡像的制作和運(yùn)行方法。

5. 訪問認(rèn)證

限制配置完成之后 Scrapyd 和它的接口都是可以公開訪問的,如果要想配置訪問認(rèn)證的話可以借助于 Nginx 做反向代理,在這里需要先安裝 Nginx 服務(wù)器。
在此以 Ubuntu 為例進(jìn)行說明,安裝命令如下:

sudo apt-get install nginx

然后修改 Nginx 的配置文件 nginx.conf,增加如下配置:

http {
    server {
        listen 6801;
        location / {
            proxy_pass    http://127.0.0.1:6800/;
            auth_basic    "Restricted";
            auth_basic_user_file    /etc/nginx/conf.d/.htpasswd;
        }
    }
}

在這里使用的用戶名密碼配置放置在 /etc/nginx/conf.d 目錄,我們需要使用 htpasswd 命令創(chuàng)建,例如創(chuàng)建一個(gè)用戶名為 admin 的文件,命令如下:

htpasswd -c .htpasswd admin

接下就會(huì)提示我們輸入密碼,輸入兩次之后,就會(huì)生成密碼文件,查看一下內(nèi)容:

cat .htpasswd 
admin:5ZBxQr0rCqwbc

配置完成之后我們重啟一下 Nginx 服務(wù),運(yùn)行如下命令:

sudo nginx -s reload
Python資源分享qun 784758214 ,內(nèi)有安裝包,PDF,學(xué)習(xí)視頻,這里是Python學(xué)習(xí)者的聚集地,零基礎(chǔ),進(jìn)階,都?xì)g迎

這樣就成功配置了 Scrapyd 的訪問認(rèn)證了。

6. 結(jié)語(yǔ)

本節(jié)介紹了 Scrapyd 的安裝方法,在后文我們會(huì)詳細(xì)了解到 Scrapy 項(xiàng)目的部署及項(xiàng)目運(yùn)行狀態(tài)監(jiān)控方法。


網(wǎng)頁(yè)標(biāo)題:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)-12、部署相關(guān)庫(kù)的安裝:Docker、Scrapyd
網(wǎng)頁(yè)路徑:http://weahome.cn/article/gepohg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部