scrapyフレームワーク内の複数のspider同時実行:scrapydの導入と使用
8112 ワード
scrapyは爬虫類のフレームワークであり、scrapydはウェブページ版でscrapyを管理するツールであり、scrapy爬虫類が作成されたらコマンドで実行できますが、ウェブページで操作できると便利です.scrapydは,この問題を解決するために,実行中のタスクをページ側で表示したり,爬虫類タスクを新規作成したり終了したりする機能が強い.
pip install scrapyd
pip install scrapy-client注:windowsシステムでは、c:python 27Scriptsでscrapyd-deployが生成されます.scrapyd-deployを直接実行することはできません.解決策:c:python 27Scriptsの下にscrapyd-deployを新規作成します.bat,ファイル内は次の通りです"`
環境変数の追加:C:Python 27Scripts;
まずコマンドラインパスをScrapyプロジェクトのルートディレクトリの下に切り、scrapydを実行してscrapydを実行します.
4.1爬虫類scrapyを修正する.cfgファイルキャンセル#url=http://localhost:6800/前の#は、具体的には次のとおりです.
次に、コマンドラインでscrapyエンジニアリングルートディレクトリにコマンドを切り替え、次のコマンドを実行します.
例:
次に、パブリッシュに成功したかどうかを確認します.
4.2爬虫類タスクの作成
未解決scrapyにあるspiderが現れず、0個のspidersしか表示されない場合はsettingsの
4.3爬虫類タスクの表示Webページでの入力:http://localhost:6800
4.4実行プロファイル:C:Python 27Libsite-packagesscrapyd-1.1.0-py 2.7.egg\scrapyd\default_scrapyd.conf
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