Scrapydベースの爬虫類の配置

5688 ワード

システムはUbuntu 16.04 TLSです.
1. Installtion
scrapy-clientのscrapy-deployを使用してscrapyプロジェクトをscrapyd serverに配備します.
#   scrapyd
pip install scrapyd
#   scrapy-client
# for python2.x
pip install git+https://github.com/scrapy/scrapyd-client
# for python3.6
pip install scrapy-client

2. Usage
a.scrapy.cfgの構成
[settings]
default = njupt.settings

[deploy:server-njupt]
url = http://localhost:6800/
project = njupt

b.scrapydの構成
プロファイルはscrapyドキュメントを参照して構成できます.ロード順は、/etc/scrapyd/scrapyd.conf/etc/scrapyd/conf.d/*scrapyd.conf~/.scrapyd.confexample:
[scrapyd]
eggs_dir    = eggs
logs_dir    = logs
items_dir   =
jobs_to_keep = 5
dbs_dir     = dbs
max_proc    = 0
max_proc_per_cpu = 4
finished_to_keep = 100
poll_interval = 5.0
bind_address = 127.0.0.1
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

c.scrapydを起動する
scrapyd

d.発行
#   scrapy project   
scrapyd-deploy server-njupt -p njupt
#      ,        
scrapyd-deploy server-njupt -p njupt --version 1.0
scrapy-deployのコマンドはそのヘルプを参照してください
e.爬虫類の任務を遂行する
curl http://localhost:6800/schedule.json -d project=njupt -d spider=njupt

プロジェクト=njuptのspiderはscrapyd-client spiders-p njuptで表示できます.
3. Security
scrapydの前に逆エージェントを追加して、ユーザー認証を実現できます.nginxを例に、配置nginx
server {
       listen 6801;
       location / {
            proxy_pass            http://127.0.0.1:6800/;
            auth_basic            "Restricted";
            auth_basic_user_file  /etc/nginx/htpasswd/user.htpasswd;
        }
}
/etc/nginx/htpasswd/user.htpasswdにユーザー名とパスワードを設定し、testと仮定します.scrapy.cfgを変更するには、次の手順に従います.
[settings]
default = njupt.settings

[deploy:server-njupt]
url = http://localhost:6800/
project = njupt
username = test
password = test

4. API
公式ドキュメントAPIを参照.