scrapyフレームワーク内の複数のspider同時実行:scrapydの導入と使用

8112 ワード

scrapyは爬虫類のフレームワークであり、scrapydはウェブページ版でscrapyを管理するツールであり、scrapy爬虫類が作成されたらコマンドで実行できますが、ウェブページで操作できると便利です.scrapydは,この問題を解決するために,実行中のタスクをページ側で表示したり,爬虫類タスクを新規作成したり終了したりする機能が強い.

Scrapyd使用の詳細:


1.scrapydのインストール


pip install scrapyd

2.scrapy-clientのインストール


pip install scrapy-client注:windowsシステムでは、c:python 27Scriptsでscrapyd-deployが生成されます.scrapyd-deployを直接実行することはできません.解決策:c:python 27Scriptsの下にscrapyd-deployを新規作成します.bat,ファイル内は次の通りです"`
@echo off
C:\Python27\python C:\Python27\Scripts\scrapyd-deploy %*

環境変数の追加:C:Python 27Scripts;

3.scrapydの実行


まずコマンドラインパスをScrapyプロジェクトのルートディレクトリの下に切り、scrapydを実行してscrapydを実行します.
2018-09-04T16:16:12+0800 [-] Loading f:\anaconda\lib\site-packages\scrapyd\txapp.py...
2018-09-04T16:16:14+0800 [-] Scrapyd web console available at http://127.0.0.1:6800/
2018-09-04T16:16:14+0800 [-] Loaded.
2018-09-04T16:16:14+0800 [twisted.application.app.AppLogger#info] twistd 18.7.0 (f:\anaconda\python.exe 3.6.2) starting up.
2018-09-04T16:16:14+0800 [twisted.application.app.AppLogger#info] reactor class: twisted.internet.selectreactor.SelectReactor.
2018-09-04T16:16:14+0800 [-] Site starting on 6800
2018-09-04T16:16:14+0800 [twisted.web.server.Site#info] Starting factory 
2018-09-04T16:16:14+0800 [Launcher] Scrapyd 1.2.0 started: max_proc=16, runner='scrapyd.runner'

4.scrapydへのプロジェクトのパブリッシュ


4.1爬虫類scrapyを修正する.cfgファイルキャンセル#url=http://localhost:6800/前の#は、具体的には次のとおりです.
# Automatically created by: scrapy startproject
#
# For more information about the [deploy] section see:
# https://scrapyd.readthedocs.io/en/latest/deploy.html

[settings]
default = CZBK.settings
[deploy]                   
url = http://localhost:6800/    #   
project = CZBK

次に、コマンドラインでscrapyエンジニアリングルートディレクトリにコマンドを切り替え、次のコマンドを実行します.
scrapyd-deploy <target> -p <project>

例:
scrapyd-deploy -p Newsspider

次に、パブリッシュに成功したかどうかを確認します.
scrapyd-deploy -l

default              http://localhost:6800/

4.2爬虫類タスクの作成
curl http://localhost:6800/schedule.json -d project=Newsspider -d spider=news

未解決scrapyにあるspiderが現れず、0個のspidersしか表示されない場合はsettingsの
#LOG_LEVEL = 'ERROR'
#LOG_STDOUT = True
#LOG_FILEV = "/tmp/spider.log"
#LOG_FORMAT = "%(asctime)s[%(name)s:%(message)s]"

4.3爬虫類タスクの表示Webページでの入力:http://localhost:6800
4.4実行プロファイル:C:Python 27Libsite-packagesscrapyd-1.1.0-py 2.7.egg\scrapyd\default_scrapyd.conf
[scrapyd]
eggs_dir = eggs
items_dir = items
jobs_to_keep = 50 
max_proc = 0 
max_proc_per_cpu = 4 
finished_to_keep = 100 
poll_interval = 5 
http_port = 6800 
debug = off 
runner = scrapyd.runner 
application = scrapyd.app.application 
launcher = scrapyd.launcher.Launcher 

[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