成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

ityouknow / 2295人閱讀

摘要:阿里云安裝腳本安裝腳本兩個腳本可以任選其一,速度都非常不錯。推薦的加速器有和阿里云。阿里云不同平臺的鏡像加速方法配置可以參考的官方文檔。以上便是的安裝方式說明。上一篇文章網(wǎng)絡(luò)爬蟲實戰(zhàn)爬蟲框架的安裝下一篇文章網(wǎng)絡(luò)爬蟲實戰(zhàn)部署相關(guān)庫

上一篇文章:Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---11、爬蟲框架的安裝:ScrapySplash、ScrapyRedis
下一篇文章:Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---13、部署相關(guān)庫ScrapydClient、ScrapydAPI

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

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

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

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

Docker的安裝

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

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

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

只要執(zhí)行如上一條命令,等待一會兒 Docker 便會安裝完成,非常方便。
但是官方腳本安裝有一個缺點,那就是慢,也可能下載超時,所以為了加快下載速度,我們可以使用國內(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

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

docker run hello-world

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

brew cask install docker

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

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

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

sudo docker run hello-world

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

圖 1-85 運行結(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 之后,在運行測試命令時,我們會發(fā)現(xiàn)它首先會下載一個 Hello World 的鏡像,然后將其運行,但是下載速度有時候會非常慢,這是因為它默認還是從國外的 Docker Hub 下載的,所以為了提高鏡像的下載速度,我們還可以使用國內(nèi)鏡像來加速下載,所以這就有了 Docker 加速器一說。
推薦的 Docker 加速器有 DaoCloud 和阿里云。
DaoCloud:https://www.daocloud.io/mirror
阿里云:https://cr.console.aliyun.com...
不同平臺的鏡像加速方法配置可以參考 DaoCloud 的官方文檔:http://guide.daocloud.io/dcs/...。
配置完成之后,可以發(fā)現(xiàn)鏡像的下載速度會快非常多。
以上便是 Docker 的安裝方式說明。

Scrapyd的安裝

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

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. 配置

安裝完畢之后需要新建一個配置文件 /etc/scrapyd/scrapyd.conf,Scrapyd 在運行的時候會讀取此配置文件。
在 Scrapyd 1.2 版本之后不會自動創(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 官方默認為 4,即一臺主機每個 CPU 最多運行 4 個Scrapy Job,在此提高為 10,另外一個是 bind_address,默認為本地 127.0.0.1,在此修改為 0.0.0.0,以使外網(wǎng)可以訪問。

4. 后臺運行

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

(scrapyd > /dev/null &)

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

(scrapyd > ~/scrapyd.log &)

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

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

5. 訪問認證

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

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)建一個用戶名為 admin 的文件,命令如下:

htpasswd -c .htpasswd admin

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

cat .htpasswd 
admin:5ZBxQr0rCqwbc

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

sudo nginx -s reload

這樣就成功配置了 Scrapyd 的訪問認證了。

6. 結(jié)語

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

上一篇文章:Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---11、爬蟲框架的安裝:ScrapySplash、ScrapyRedis
下一篇文章:Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---13、部署相關(guān)庫ScrapydClient、ScrapydAPI

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/44032.html

相關(guān)文章

  • Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---13、部署相關(guān)ScrapydClient、ScrapydAPI

    摘要:相關(guān)鏈接使用說明安裝推薦使用安裝,命令如下驗證安裝安裝成功后會有一個可用命令,叫做,即部署命令。我們可以輸入如下測試命令測試是否安裝成功如果出現(xiàn)如圖類似輸出則證明已經(jīng)成功安裝圖運行結(jié)果在后文我們會詳細了解它的用法。 上一篇文章:Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---12、部署相關(guān)庫的安裝:Docker、Scrapyd下一篇文章:Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---14、部署相關(guān)庫的安裝:Scra...

    lolomaco 評論0 收藏0
  • Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---14、部署相關(guān)庫的安裝:Scrapyrt、Gerapy

    摘要:相關(guān)鏈接官方文檔安裝推薦使用安裝,命令如下命令執(zhí)行完畢之后即可完成安裝。的安裝是一個分布式管理模塊,本節(jié)來介紹一下的安裝方式。如果沒有錯誤報出,則證明庫已經(jīng)安裝好了。上一篇文章網(wǎng)絡(luò)爬蟲實戰(zhàn)部署相關(guān)庫下一篇文章網(wǎng)絡(luò)爬蟲實戰(zhàn)爬蟲基礎(chǔ)基本原理 上一篇文章:Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---13、部署相關(guān)庫ScrapydClient、ScrapydAPI下一篇文章:Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)--...

    nihao 評論0 收藏0
  • Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---11、爬蟲框架的安裝:ScrapySplash、ScrapyRedi

    摘要:上一篇文章網(wǎng)絡(luò)爬蟲實戰(zhàn)爬蟲框架的安裝下一篇文章網(wǎng)絡(luò)爬蟲實戰(zhàn)部署相關(guān)庫的安裝的安裝是一個中支持渲染的工具,本節(jié)來介紹一下它的安裝方式。另外一個是的庫的安裝,安裝之后即可在中使用服務(wù)。 上一篇文章:Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---10、爬蟲框架的安裝:PySpider、Scrapy下一篇文章:Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---12、部署相關(guān)庫的安裝:Docker、Scrapyd Scrap...

    harryhappy 評論0 收藏0
  • Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---8、APP爬取相關(guān)庫的安裝:MitmProxy的安裝

    摘要:下的安裝的安裝非常簡單,使用即可,命令如下執(zhí)行命令后即可完成的安裝。另外還可以在端口上啟動,命令如下更多啟動方式可以參考的安裝說明。上一篇文章網(wǎng)絡(luò)爬蟲實戰(zhàn)網(wǎng)絡(luò)爬蟲實戰(zhàn)爬取相關(guān)庫的安裝的安裝下一篇文章網(wǎng)絡(luò)爬蟲實戰(zhàn)爬取相關(guān)庫的安裝的安裝 上一篇文章:Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---7、Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---APP爬取相關(guān)庫的安裝:Charles的安裝下一篇文章:Python3網(wǎng)絡(luò)...

    Kerr1Gan 評論0 收藏0
  • Scrapy-Cluster結(jié)合Spiderkeeper管理分布式爬蟲

    摘要:分布式爬蟲,分發(fā)網(wǎng)址是基于地址。注意要使用管理同一個集群,爬蟲項目名稱須一致,同時集群中配置相同任務(wù)瀏覽器訪問啟動爬蟲時即可看見兩個集群配置,啟動同名爬蟲開始分布式爬蟲啟動分布式爬蟲后狀態(tài) Scrapy-cluster 建設(shè) 基于Scrapy-cluster庫的kafka-monitor可以實現(xiàn)分布式爬蟲 Scrapyd+Spiderkeeper實現(xiàn)爬蟲的可視化管理 環(huán)境 IP...

    bingo 評論0 收藏0

發(fā)表評論

0條評論

ityouknow

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<