溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python3爬蟲利器中Scrapyd的安裝方法是什么

發(fā)布時間:2020-08-05 13:55:15 來源:億速云 閱讀:174 作者:小新 欄目:編程語言

這篇文章主要介紹了Python3爬蟲利器中Scrapyd的安裝方法是什么,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

Scrapyd是一個用于部署和運行Scrapy項目的工具,有了它,你可以將寫好的Scrapy項目上傳到云主機并通過API來控制它的運行。

既然是Scrapy項目部署,基本上都使用Linux主機,所以本節(jié)的安裝是針對于Linux主機的。

1. 相關(guān)鏈接

GitHub:https://github.com/scrapy/scrapyd

PyPI:https://pypi.python.org/pypi/scrapyd

官方文檔: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.io/en/stable/config.html#example-configuration-file。這里的配置文件有所修改,其中之一是max_proc_per_cpu官方默認為4,即一臺主機每個CPU最多運行4個Scrapy任務,在此提高為10。另外一個是bind_address,默認為本地127.0.0.1,在此修改為0.0.0.0,以使外網(wǎng)可以訪問。

4. 后臺運行

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

(scrapyd > /dev/null &)

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

(scrapyd > ~/scrapyd.log &)

此時會將Scrapyd的運行結(jié)果輸出到~/scrapyd.log文件中。

當然也可以使用screen、tmux、supervisor等工具來實現(xiàn)進程守護。

運行之后,便可以在瀏覽器的6800端口訪問Web UI了,從中可以看到當前Scrapyd的運行任務、日志等內(nèi)容,如圖1-85所示。

Python3爬蟲利器中Scrapyd的安裝方法是什么

                                                                圖1-85 Scrapyd首頁

當然,運行Scrapyd更佳的方式是使用Supervisor守護進程,如果感興趣,可以參考:http://supervisord.org/。

另外,Scrapyd也支持Docker,后面我們會介紹Scrapyd Docker鏡像的制作和運行方法。

5. 訪問認證

配置完成后,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命令創(chuàng)建。例如,創(chuàng)建一個用戶名為admin的文件,命令如下:

htpasswd -c .htpasswd admin

接著就會提示我們輸入密碼,輸入兩次之后,就會生成密碼文件。此時查看這個文件的內(nèi)容:

cat .htpasswd 
admin:5ZBxQr0rCqwbc

配置完成后,重啟一下Nginx服務,運行如下命令:

sudo nginx -s reload

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

感謝你能夠認真閱讀完這篇文章,希望小編分享Python3爬蟲利器中Scrapyd的安裝方法是什么內(nèi)容對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI