摘要:阿里云安裝腳本安裝腳本兩個腳本可以任選其一,速度都非常不錯。推薦的加速器有和阿里云。阿里云不同平臺的鏡像加速方法配置可以參考的官方文檔。以上便是的安裝方式說明。上一篇文章網絡爬蟲實戰爬蟲框架的安裝下一篇文章網絡爬蟲實戰部署相關庫
上一篇文章:Python3網絡爬蟲實戰---11、爬蟲框架的安裝:ScrapySplash、ScrapyRedis
下一篇文章:Python3網絡爬蟲實戰---13、部署相關庫ScrapydClient、ScrapydAPI
如果想要大規模抓取數據,那么一定會用到分布式爬蟲,對于分布式爬蟲來說,我們一定需要多臺主機,每臺主機多個爬蟲任務,但是源代碼其實只有一份。那么我們需要做的就是將一份代碼同時部署到多臺主機上來協同運行,那么怎么去部署就又是一個值得思考的問題。
對于 Scrapy 來說,它有一個擴展組件叫做 Scrapyd,我們只需要安裝 Scrapyd 即可遠程管理 Scrapy 任務,包括部署源碼、啟動任務、監聽任務等操作。另外還有 ScrapydClient 和 ScrapydAPI 來幫助我們更方便地完成部署和監聽操作。
另外還有一種部署方式就是 Docker 集群部署,我們只需要將爬蟲制作為 Docker 鏡像,只要主機安裝了 Docker,就可以直接運行爬蟲,而無需再去擔心環境配置、版本問題。
本節我們就來介紹一下相關環境的配置過程。
Docker的安裝Docker 是一種容器技術,它可以將應用和環境等進行打包,形成一個獨立的,類似于 iOS 的 APP 形式的「應用」,這個應用可以直接被分發到任意一個支持 Docker 的環境中,通過簡單的命令即可啟動運行。Docker 是一種最流行的容器化實現方案。和虛擬化技術類似,它極大的方便了應用服務的部署;又與虛擬化技術不同,它以一種更輕量的方式實現了應用服務的打包。使用 Docker 可以讓每個應用彼此相互隔離,在同一臺機器上同時運行多個應用,不過他們彼此之間共享同一個操作系統。Docker 的優勢在于,它可以在更細的粒度上進行資源的管理,也比虛擬化技術更加節約資源。
本段參考:DaoCloud官方文檔
對于爬蟲來說,如果我們需要大規模部署爬蟲系統的話,用 Docker 會大大提高效率,工欲善其事,必先利其器。
本節來介紹一下三大平臺下 Docker 的安裝方式。
官方網站:https://www.docker.com
GitHub:https://github.com/docker
Docker Hub:https://hub.docker.com
官方文檔:https://docs.docker.com
DaoCloud:http://www.daocloud.io
中文社區:http://www.docker.org.cn
中文教程:http://www.runoob.com/docker/...
推薦書籍:https://yeasy.gitbooks.io/doc...
2. Linux下的安裝詳細的分步驟的安裝說明可以參見官方文檔:https://docs.docker.com/engin...。
在官方文檔中詳細說明了不同 Linux 系統的安裝方法,安裝流程根據文檔一步步執行即可安裝成功。
但是為了使得安裝更加方便,Docker 官方還提供了一鍵安裝腳本,使用它會使得安裝更加便捷,不用再去一步步執行命令安裝了,在此介紹一下一鍵腳本安裝方式。
首先是 Docker 官方提供的安裝腳本,相比其他腳本,官方提供的一定更靠譜,安裝命令如下:
curl -sSL https://get.docker.com/ | sh
只要執行如上一條命令,等待一會兒 Docker 便會安裝完成,非常方便。
但是官方腳本安裝有一個缺點,那就是慢,也可能下載超時,所以為了加快下載速度,我們可以使用國內的鏡像來安裝,所以在這里還有阿里云和 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
兩個腳本可以任選其一,速度都非常不錯。
等待腳本執行完畢之后,就可以使用 Docker 相關命令了,如運行測試 Hello World 鏡像:
docker run hello-world
運行結果:
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.
如果出現上文類似提示內容則證明 Docker 可以正常使用了。
3. Mac下的安裝Mac 平臺同樣有兩種選擇,Docker for Mac 和 Docker Toolbox。
Docker for Mac 要求系統為 OS X EI Captain 10.11 或更新,至少 4GB 內存,如果你的系統滿足此要求,則強烈建議安裝 Docker for Mac。
可以使用 HomeBrew 安裝,安裝命令如下:
brew cask install docker
另外也可以手動下載安裝包安裝,安裝包下載地址為:https://download.docker.com/m...
下載完成之后直接雙擊安裝包,然后將程序拖動到應用程序中即可。
點擊程序圖標運行 Docker,會發現在菜單欄中出現了 Docker 的圖標,如圖 1-83 中的第三個小鯨魚圖標:
圖 1-83 菜單欄
點擊圖標展開菜單之后,再點擊 Start 按鈕即可啟動 Docker,啟動成功便會提示 Docker is running,如圖 1-84 所示:
圖 1-84 運行頁面
隨后我們就可以在命令行下使用 Docker 命令了。
可以使用如下命令測試運行:
sudo docker run hello-world
運行結果如圖 1-85 所示:
圖 1-85 運行結果
如果出現類似輸出則證明 Docker 已經成功安裝。
如果系統不滿足要求,可以下載 Docker Toolbox,其安裝說明為:https://docs.docker.com/toolb...。
關于 Docker for Mac 和 Docker Toolbox 的區別,可以參見:https://docs.docker.com/docke...。
安裝好 Docker 之后,在運行測試命令時,我們會發現它首先會下載一個 Hello World 的鏡像,然后將其運行,但是下載速度有時候會非常慢,這是因為它默認還是從國外的 Docker Hub 下載的,所以為了提高鏡像的下載速度,我們還可以使用國內鏡像來加速下載,所以這就有了 Docker 加速器一說。
推薦的 Docker 加速器有 DaoCloud 和阿里云。
DaoCloud:https://www.daocloud.io/mirror
阿里云:https://cr.console.aliyun.com...
不同平臺的鏡像加速方法配置可以參考 DaoCloud 的官方文檔:http://guide.daocloud.io/dcs/...。
配置完成之后,可以發現鏡像的下載速度會快非常多。
以上便是 Docker 的安裝方式說明。
Scrapyd 是一個用于部署和運行 Scrapy 項目的工具。有了它,你可以將寫好的 Scrapy 項目上傳到云主機并通過 API 來控制它的運行。
既然是 Scrapy 項目部署,所以基本上都使用 Linux 主機,所以本節的安裝是針對于 Linux 主機的。
GitHub:https://github.com/scrapy/scr...
PyPi:https://pypi.python.org/pypi/...
官方文檔:https://scrapyd.readthedocs.io
2. Pip安裝推薦使用 Pip 安裝,命令如下:
pip3 install scrapyd3. 配置
安裝完畢之后需要新建一個配置文件 /etc/scrapyd/scrapyd.conf,Scrapyd 在運行的時候會讀取此配置文件。
在 Scrapyd 1.2 版本之后不會自動創建該文件,需要我們自行添加。
執行命令新建文件:
sudo mkdir /etc/scrapyd sudo vi /etc/scrapyd/scrapyd.conf
寫入如下內容:
[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
配置文件的內容可以參見官方文檔:https://scrapyd.readthedocs.i...,在這里的配置文件有所修改,其中之一是 max_proc_per_cpu 官方默認為 4,即一臺主機每個 CPU 最多運行 4 個Scrapy Job,在此提高為 10,另外一個是 bind_address,默認為本地 127.0.0.1,在此修改為 0.0.0.0,以使外網可以訪問。
4. 后臺運行由于 Scrapyd 是一個純 Python 項目,在這里可以直接調用 scrapyd 來運行,為了使程序一直在后臺運行,Linux 和 Mac 可以使用如下命令:
(scrapyd > /dev/null &)
這樣 Scrapyd 就會在后臺持續運行了,控制臺輸出直接忽略,當然如果想記錄輸出日志可以修改輸出目標,如:
(scrapyd > ~/scrapyd.log &)
則會輸出 Scrapyd 運行輸出到 ~/scrapyd.log 文件中。
運行之后便可以在瀏覽器的 6800 訪問 WebUI 了,可以簡略看到當前 Scrapyd 的運行 Job、Log 等內容,如圖 1-86 所示:
圖 1-86 Scrapyd 首頁
當然運行 Scrapyd 更佳的方式是使用 Supervisor 守護進程運行,如果感興趣可以參考:http://supervisord.org/。
另外 Scrapyd 也支持 Docker,在后文我們會介紹 Scrapyd Docker 鏡像的制作和運行方法。
限制配置完成之后 Scrapyd 和它的接口都是可以公開訪問的,如果要想配置訪問認證的話可以借助于 Nginx 做反向代理,在這里需要先安裝 Nginx 服務器。
在此以 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 命令創建,例如創建一個用戶名為 admin 的文件,命令如下:
htpasswd -c .htpasswd admin
接下就會提示我們輸入密碼,輸入兩次之后,就會生成密碼文件,查看一下內容:
cat .htpasswd admin:5ZBxQr0rCqwbc
配置完成之后我們重啟一下 Nginx 服務,運行如下命令:
sudo nginx -s reload
這樣就成功配置了 Scrapyd 的訪問認證了。
6. 結語本節介紹了 Scrapyd 的安裝方法,在后文我們會詳細了解到 Scrapy 項目的部署及項目運行狀態監控方法。
上一篇文章:Python3網絡爬蟲實戰---11、爬蟲框架的安裝:ScrapySplash、ScrapyRedis
下一篇文章:Python3網絡爬蟲實戰---13、部署相關庫ScrapydClient、ScrapydAPI
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44032.html
摘要:相關鏈接使用說明安裝推薦使用安裝,命令如下驗證安裝安裝成功后會有一個可用命令,叫做,即部署命令。我們可以輸入如下測試命令測試是否安裝成功如果出現如圖類似輸出則證明已經成功安裝圖運行結果在后文我們會詳細了解它的用法。 上一篇文章:Python3網絡爬蟲實戰---12、部署相關庫的安裝:Docker、Scrapyd下一篇文章:Python3網絡爬蟲實戰---14、部署相關庫的安裝:Scra...
摘要:相關鏈接官方文檔安裝推薦使用安裝,命令如下命令執行完畢之后即可完成安裝。的安裝是一個分布式管理模塊,本節來介紹一下的安裝方式。如果沒有錯誤報出,則證明庫已經安裝好了。上一篇文章網絡爬蟲實戰部署相關庫下一篇文章網絡爬蟲實戰爬蟲基礎基本原理 上一篇文章:Python3網絡爬蟲實戰---13、部署相關庫ScrapydClient、ScrapydAPI下一篇文章:Python3網絡爬蟲實戰--...
摘要:上一篇文章網絡爬蟲實戰爬蟲框架的安裝下一篇文章網絡爬蟲實戰部署相關庫的安裝的安裝是一個中支持渲染的工具,本節來介紹一下它的安裝方式。另外一個是的庫的安裝,安裝之后即可在中使用服務。 上一篇文章:Python3網絡爬蟲實戰---10、爬蟲框架的安裝:PySpider、Scrapy下一篇文章:Python3網絡爬蟲實戰---12、部署相關庫的安裝:Docker、Scrapyd Scrap...
摘要:下的安裝的安裝非常簡單,使用即可,命令如下執行命令后即可完成的安裝。另外還可以在端口上啟動,命令如下更多啟動方式可以參考的安裝說明。上一篇文章網絡爬蟲實戰網絡爬蟲實戰爬取相關庫的安裝的安裝下一篇文章網絡爬蟲實戰爬取相關庫的安裝的安裝 上一篇文章:Python3網絡爬蟲實戰---7、Python3網絡爬蟲實戰---APP爬取相關庫的安裝:Charles的安裝下一篇文章:Python3網絡...
摘要:分布式爬蟲,分發網址是基于地址。注意要使用管理同一個集群,爬蟲項目名稱須一致,同時集群中配置相同任務瀏覽器訪問啟動爬蟲時即可看見兩個集群配置,啟動同名爬蟲開始分布式爬蟲啟動分布式爬蟲后狀態 Scrapy-cluster 建設 基于Scrapy-cluster庫的kafka-monitor可以實現分布式爬蟲 Scrapyd+Spiderkeeper實現爬蟲的可視化管理 環境 IP...
閱讀 1971·2019-08-30 15:54
閱讀 3596·2019-08-29 13:07
閱讀 3124·2019-08-29 12:39
閱讀 1789·2019-08-26 12:13
閱讀 1547·2019-08-23 18:31
閱讀 2159·2019-08-23 18:05
閱讀 1844·2019-08-23 18:00
閱讀 1043·2019-08-23 17:15