scrapyd 部署项目
标签(空格分隔): python scrapy scrapyd
- 介绍:
Scrapyd用来部署运行爬虫。它提供了HTTPAPI的服务器,还能运行和监控Scrapy的爬虫。要部署爬虫到Scrapyd,需要使用到scrapyd-client部署工具集,下面演示下部署的步骤Scrapyd通常以守护进程daemon形式运行监听spider的请求,然后为每个spider创建一个进程执行scrapy crawl myspider,同时Scrapyd还能以多进程方式启动,通过配置max_proc和max_proc_per_cpu选项。
- 安装 主机上:
pip install scrapyd #在cmd界面下输入
选择盘符建立scrapyd的文件夹为存放打包上来的文件(.egg)
- 配置
打开本机装入python的根文件夹,进入:\Lib\site-packages\scrapyd下,找到default_scrapyd.conf文件使用notep++打开更改配置信息:
[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
bind_address = 0.0.0.0 #注意默认为127.0.0.1 为保证通过内网访问 改为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
除bind_address外其他均不变
- 部署方法
在发布爬虫的机器上打开cmd输入:
pip install scrapyd-client #Scrapyd-client是scrapyd的一个客户端
scrapyd提供了
scrapyd-delpoy
命令上传我们所写的spider需要我们进入我们所建的爬虫文件修改scrapy.cfg文件内容。如:
[deploy:example] #example为发布名称
url = http://scrapyd.example.com/api/scrapyd #url为服务器上端口如:http://127.0.0.1:6800
project = yourproject #为工程名称,发布爬虫时需要使用
#username = scrapy
#password = secret
更改了scrapy.cfg信息后,发布爬虫时,我们需要在cmd中cd 到我们所建立的爬虫项目下,如:ArticleSpider 。目的是执行scrapyd-deploy命令时,可检测到我们的scrapy.cfg文件
scrapyd-deploye -l example #可列出可运行的工程
scrapyd-deploye <example> -p <projectname> #发布爬虫
注意:(无法执行scrapyd-deploy时)
在python36\Scripts下新建文件scrapyd-deploy.bat然后写入以下内容:
@echo off
"E:\python36\python.exe" "E:\python36\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9
部署成功后我们可以看到提示:
{"status":"ok"}
- 启动爬虫
首先我们需要下载Cmder软件用于执行curl命令。
打开Cmder,输入以下代码启动爬虫
curl http://localhost:6800/schedule.json -d project=market_spider -d spider=newsspider
# http://localhost:6800/ 可以改为服务器ip,如:
192.168.1.154:6800
(因为我们在scrapy.cfg文件中的url输入的为架设scrapyd的ip 所以我们在启动spider的时候应该输入相同的地址)
启动成功后我们可以得到:
{"status":"ok"}的提示
并且我们得到"jobid"我们需要记住后面的编码,用于以后结束爬虫。
curl http://127.0.0.1:6800/cancel.json -d project=myspider -d job=566dba0ccc0711e6b95c000c294834b5
输入上方代码结束正在工作的爬虫,job后的码即为启动爬虫时产生的jobid
- 查看爬虫的日志
在浏览器中输入Scrapyd的地址,即为部署Scrapyd的主机的ip加上端口。如:http://192.168.1.152:6800/ 然后点击job我们可以看见现在正在运行的爬虫以及完成后的爬虫。
点击log我们可以观看日志每一次运行爬虫都会产生,并且在本地创建的Scrapyd文件夹下logs文件夹中也会存储。观看日志信息我们可以看到如果爬虫运行错误的信息。
- 注意:
1.将爬虫打包传递到服务器后,运行时,我们需要保证服务器的环境足够运行此项目的代码;
2.对于本机上的爬虫代码,我们可以使用本地的插件例如:chrome.exe 用于selenium进行爬取但代码打包上传时,代码没有改变,所以会有找不chrome的错误,我们需要对其做出一定的更改,上传新的代码版本;
3.更多scrapyd相关命令可访问下面网址:
http://scrapyd.readthedocs.io/en/latest/api.html
- 原视频UP主慕课网(聚焦Python分布式爬虫必学框架Scrapy 打造搜索引擎)
- 本篇博客撰写人: Python组学弟撰写 XiaoJinZi 上传 个人主页 转载请注明出处
- 学生能力有限 附上邮箱: 986209501@qq.com 不足以及误处请大佬指责
网友评论