第十二章 scrapyd 部署爬虫

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 不足以及误处请大佬指责
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,951评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,606评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,601评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,478评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,565评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,587评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,590评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,337评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,785评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,096评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,273评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,935评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,578评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,199评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,440评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,163评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,133评论 2 352

推荐阅读更多精彩内容