scrapydでscrapyプロジェクトを配備する
scrapydの紹介とインストール
scrapydはnginx,tomcatのようなサーバで、webインタフェースが露出し、私たちのscrapy爬虫類はwebappとして導入され、webapiを通じて開閉するなどの操作を行います.
インストール:
私たちが導入する前提は、自分がすでにscrapyプロジェクトを持っていることです.いいえ、具体的には参考にしてください.https://blog.csdn.net/mingover/article/details/80717974
サーバの使用とオープン
cd E:scrapyd_のようなディレクトリを新規作成folddspider、これは後の配置ファイルを置くためのspidedコマンドでサービスを開きます.
デフォルトのアクセスアドレスはhttp://localhost:6800/
jobsが見えます.中の表の内容は私たちが配置するscrapyサービスです.まだ配置されていないので、何もありません.
プロファイル
上のいくつかのプロファイルは有効になります.具体的な構成は公式サイトの説明を直接見てください.http://scrapyd.readthedocs.io/en/stable/config.htmlscrapydがサーバに置かれている場合はbind_を忘れないでください.addressは0.0.0.0に変更しipへのアクセスを制限しないことを示す
爬虫類プログラムを導入する
scrapyd-clientをインストールします.これはパッケージ化ツールのようなものです.私たちのscrapyプログラムをeggにパッケージ化してscrapydに投げます.これはmavenのようなパッケージ化と配置のツールです.
scrapyプロジェクトのルートディレクトリに移動し、パッケージと配置コマンドを実行します.
いくつかの注意事項: scrapy listが使用可能であることを確認する. scrapy.cfgにおける[deploy]->[deploy:xxx]このxxxはカスタマイズされた です. pythonが検索できるパスにパスを追加しsettings.jsに を加える
Windowsではscrapyd-clientのツールに問題があり、exeやbat実行可能なファイルがなく、自分で作成する必要があります. scrapydを使用すると、天井*が配置されているときに、scrapyd-deploy nextst-p dspiderが間違って投げられるという問題があります.
これはscrapydを使って配備したとき、BASE_DIRが上書きされ、多くのロゴが間違った場所を探してエラーを表示し、LOG_を新規作成します.DIR、パスを書き込み、BASEを使用しないでください.DIRはシステムの中で组み合わせます!!!(この問題は私に1日探して、主に最初はerror.logを使って、とても規範的なlogで、ずっとscrapydの自分のlogだと思っていましたが、実際には、このerror.logはコードの中に入っていて、そのpathがBASE_DIRを使っているので、経路が間違っていて、間違いを招きました)
実はこの問題は正確にはosです.path.dirname(os.path.dirname(os.path.abspath(file))という列に問題があり、この生成経路がおかしくなって、何度も試して、os.path.abspath(file)はこの経路c:usersxxxxappdatalocaltempdspider-1531277157-jjjulp 4 yqである.egg\dspider\settings.py .パッケージ化の時に経路が変わったはずです(ちょっと不思議ですが、パッケージ化の時(eggを打ってサービス側に投げて解析した時かもしれません)、なぜこのpyを実行しますか?)
元サイト:https://stackoverflow.com/questions/50453479/valueerror-while-deploying-scrapy
公式アクセスとインタフェースの紹介
どのような項目が投げ込まれたかを確認しますhttp://127.0.0.1:6800/listprojects.json
spiderを実行
実行後、表示http://localhost:6800/jobs実行中のjob(spider)が表示されます
ジョブを閉じる
scrapyのログを表示するにはどうすればいいですか?
一つはspiderの端末ロゴで、http://localhost:6800/jobs中には、他のカスタムロゴが見えますが、プロジェクトがどこに置かれているかを見てみましょう.
scrapydの構成などの紹介
XXX/python_を表示できますenv\p3scrapy\Lib\site-packages\scrapyd/default_scrapyd.confの中の内容、相応の配置を見ることができて、具体的な問題、自分で公式サイトを見ます
SpiderKeeperを使用してspiderとjobsを管理
spiderd-clientを使用してパッケージ化と導入を行い、同時にspderdを使用してjobを作成し、実行しますが、コマンドラインであり、不便です.spiderKepperを直接使用してインタフェースを表示することができます.
spiderKepperはウェブアプリケーションであり、spidedを指すウェブアクセスインタフェースを構成すればよい.使いやすいので、公式サイトを直接見ればいいのですが、
簡単な説明:
1、ここに穴があって、时にはeggを配置して成功しないとしても、彼は成功を示して、jobを建てる时、spiderが见つからないで、少しぼんやりしています2、spiderkeeperは地元で先にeggを梱包した后にこのeggをサービス端に投げて、インタフェースはヒントがあって、投げ终わった后にspidedの中でこのプロジェクトがあるかどうかを见ることを覚えていますhttp://xxxxx:5000/api.html
具体的な参考:https://github.com/DormyMo/SpiderKeeper
sracpydの一般的な操作
运用spiderKeeperはOKですが、ちょっとストレートではないので、间违いがあっても投げません....保険ポイントはspidedのapiインタフェースを直接使用します.
パッケージ:
scrapyd-deploy –build-egg output4.egg
プロジェクトの導入:
curl http://localhost:6800/addversion.json -F project=oo -F version=1 -F egg=@nextspi\output4.egg eggオプションの後ろにファイルがあります
パッケージ化と導入:
scrapyd-deploy target -p dspider
この方式を用いるとscrapy.cfgのdeployは、次のように構成されます.
アイテムを削除するには
curl http://localhost:6800/delproject.json -d project=dspider
項目を列挙:
curl http://localhost:6800/listprojects.json
ジョブを開く
http://127.0.0.1:6800/schedule.json -d project=myob -d spider=StItemDetail
jobの表示
http://127.0.0.1:6800/
関job
curl http://localhost:6800/cancel.json -d project=dspider -d job=46028aee84bc11e89427e0d55e1da53a
公式サイトは直接見つけることができます:https://scrapyd.readthedocs.io/en/latest/api.html#cancel-json
scrapydはnginx,tomcatのようなサーバで、webインタフェースが露出し、私たちのscrapy爬虫類はwebappとして導入され、webapiを通じて開閉するなどの操作を行います.
インストール:
pip install scrapyd
私たちが導入する前提は、自分がすでにscrapyプロジェクトを持っていることです.いいえ、具体的には参考にしてください.https://blog.csdn.net/mingover/article/details/80717974
サーバの使用とオープン
cd E:scrapyd_のようなディレクトリを新規作成folddspider、これは後の配置ファイルを置くためのspidedコマンドでサービスを開きます.
>cd E:\scrapyd_fold\dspider
>scrapyd
デフォルトのアクセスアドレスはhttp://localhost:6800/
jobsが見えます.中の表の内容は私たちが配置するscrapyサービスです.まだ配置されていないので、何もありません.
プロファイル
* /etc/scrapyd/scrapyd.conf (Unix)
* c:\scrapyd\scrapyd.conf (Windows)
* /etc/scrapyd/conf.d/* (in alphabetical order, Unix)
* scrapyd.conf
* ~/.scrapyd.conf (users home directory)
上のいくつかのプロファイルは有効になります.具体的な構成は公式サイトの説明を直接見てください.http://scrapyd.readthedocs.io/en/stable/config.htmlscrapydがサーバに置かれている場合はbind_を忘れないでください.addressは0.0.0.0に変更しipへのアクセスを制限しないことを示す
爬虫類プログラムを導入する
scrapyd-clientをインストールします.これはパッケージ化ツールのようなものです.私たちのscrapyプログラムをeggにパッケージ化してscrapydに投げます.これはmavenのようなパッケージ化と配置のツールです.
pip install scrapyd-client
scrapyプロジェクトのルートディレクトリに移動し、パッケージと配置コマンドを実行します.
(p3scrapy) λ scrapyd-deploy nextst -p dspider
Packing version 1531231887
Deploying to project "dspider" in http://localhost:6800/addversion.json
Server response (200):
{"node_name": "gih-d-15336", "status": "ok", "project": "dspider", "version": "1531231887", "spiders": 75}
いくつかの注意事項:
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0,os.path.join(BASE_DIR,'dspider'))
Windowsではscrapyd-clientのツールに問題があり、exeやbat実行可能なファイルがなく、自分で作成する必要があります.
@echo off
"xxxx\python_env\p3scrapy\Scripts\python.exe" "xxx\python_env\p3scrapy\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9
File "d:
etease\work\code\python_env\p3scrapy\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "" , line 994, in _gcd_import
File "" , line 971, in _find_and_load
File "" , line 955, in _find_and_load_unlocked
File "" , line 656, in _load_unlocked
File "" , line 626, in _load_backward_compatible
File "c:\users\denggu~1\appdata\local\temp\dspider-1531231546-kluup944.egg\dspider\settings.py", line 183, in
File "E:\python36\Lib\logging\config.py", line 795, in dictConfig
dictConfigClass(config).configure()
File "E:\python36\Lib\logging\config.py", line 566, in configure
'%r: %s' % (name, e))
ValueError: Unable to configure handler 'error': [Errno 2] No such file or directory: 'c:\\users\\denggu~1\\appdata\\local\\temp\\dspider-1531231546-kluup944.egg\\error.log'
これはscrapydを使って配備したとき、BASE_DIRが上書きされ、多くのロゴが間違った場所を探してエラーを表示し、LOG_を新規作成します.DIR、パスを書き込み、BASEを使用しないでください.DIRはシステムの中で组み合わせます!!!(この問題は私に1日探して、主に最初はerror.logを使って、とても規範的なlogで、ずっとscrapydの自分のlogだと思っていましたが、実際には、このerror.logはコードの中に入っていて、そのpathがBASE_DIRを使っているので、経路が間違っていて、間違いを招きました)
実はこの問題は正確にはosです.path.dirname(os.path.dirname(os.path.abspath(file))という列に問題があり、この生成経路がおかしくなって、何度も試して、os.path.abspath(file)はこの経路c:usersxxxxappdatalocaltempdspider-1531277157-jjjulp 4 yqである.egg\dspider\settings.py .パッケージ化の時に経路が変わったはずです(ちょっと不思議ですが、パッケージ化の時(eggを打ってサービス側に投げて解析した時かもしれません)、なぜこのpyを実行しますか?)
元サイト:https://stackoverflow.com/questions/50453479/valueerror-while-deploying-scrapy
公式アクセスとインタフェースの紹介
どのような項目が投げ込まれたかを確認しますhttp://127.0.0.1:6800/listprojects.json
spiderを実行
(p3scrapy) λ curl http://localhost:6800/schedule.json -d project=dspider -d spider=StItemDetail
{"node_name": "gih-d-15336", "status": "ok", "jobid": "a648e682844c11e8946ae0d55e1da53a"}
実行後、表示http://localhost:6800/jobs実行中のjob(spider)が表示されます
ジョブを閉じる
(p3scrapy) λ curl http://localhost:6800/cancel.json -d project=dspider -d job=cd581540844d11e8a017e0d55e1da53a
{"node_name": "gih-d-15336", "status": "ok", "prevstate": "running"}
scrapyのログを表示するにはどうすればいいですか?
一つはspiderの端末ロゴで、http://localhost:6800/jobs中には、他のカスタムロゴが見えますが、プロジェクトがどこに置かれているかを見てみましょう.
scrapydの構成などの紹介
XXX/python_を表示できますenv\p3scrapy\Lib\site-packages\scrapyd/default_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 = 4
finished_to_keep = 100
poll_interval = 5.0
bind_address = 127.0.0.1
http_port = 6800
debug = on
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
SpiderKeeperを使用してspiderとjobsを管理
spiderd-clientを使用してパッケージ化と導入を行い、同時にspderdを使用してjobを作成し、実行しますが、コマンドラインであり、不便です.spiderKepperを直接使用してインタフェースを表示することができます.
spiderKepperはウェブアプリケーションであり、spidedを指すウェブアクセスインタフェースを構成すればよい.使いやすいので、公式サイトを直接見ればいいのですが、
簡単な説明:
1、ここに穴があって、时にはeggを配置して成功しないとしても、彼は成功を示して、jobを建てる时、spiderが见つからないで、少しぼんやりしています2、spiderkeeperは地元で先にeggを梱包した后にこのeggをサービス端に投げて、インタフェースはヒントがあって、投げ终わった后にspidedの中でこのプロジェクトがあるかどうかを见ることを覚えていますhttp://xxxxx:5000/api.html
具体的な参考:https://github.com/DormyMo/SpiderKeeper
sracpydの一般的な操作
运用spiderKeeperはOKですが、ちょっとストレートではないので、间违いがあっても投げません....保険ポイントはspidedのapiインタフェースを直接使用します.
パッケージ:
scrapyd-deploy –build-egg output4.egg
プロジェクトの導入:
curl http://localhost:6800/addversion.json -F project=oo -F version=1 -F egg=@nextspi\output4.egg eggオプションの後ろにファイルがあります
パッケージ化と導入:
scrapyd-deploy target -p dspider
この方式を用いるとscrapy.cfgのdeployは、次のように構成されます.
[deploy:target]
url = http://localhost:6800/
project = dspider
アイテムを削除するには
curl http://localhost:6800/delproject.json -d project=dspider
項目を列挙:
curl http://localhost:6800/listprojects.json
ジョブを開く
http://127.0.0.1:6800/schedule.json -d project=myob -d spider=StItemDetail
jobの表示
http://127.0.0.1:6800/
関job
curl http://localhost:6800/cancel.json -d project=dspider -d job=46028aee84bc11e89427e0d55e1da53a
公式サイトは直接見つけることができます:https://scrapyd.readthedocs.io/en/latest/api.html#cancel-json