使用Scrapyd部署爬虫

使用Scrapyd部署爬虫
Scrapyd:
一个部署和运行Scrapy爬虫的应用程序,它使用户能在网页查看正在执行的任务,能通过JSON API部署(上传)工程和控制工程中的爬虫,如新建爬虫任务、终止爬虫任务等。
1.要使用Scrapyd部署,需要安装Scrapyd

pip install scrapyd

2.运行Scrapyd

>scrapyd

默认情况下,Scrapyd监听0.0.0.0:6800端口,用浏览器开:http://localhost:6800/,就能看到Scrapyd已经成功运行。单机页面的Jobs查看已经部署的爬虫,单击Logs查看日志信息。
使用Scrapyd部署爬虫_第1张图片
3.将代码上传并部署到Scrapyd,需要使用一个专门的打包上传工具scrapyd-client

>pip install scrapyd-client

4.将本地Scrapy项目中的scrapy.cfg配置文件进行配置

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

5.scrapyd-client为用户提供了scrapyd-deploy命令,用来打包和上传爬虫代码。
Windows下,使用此命令,可能会出现:“‘scrapyd-deploy’ 不是内部或外部命令,也不是可运行的程序或批处理文件。”的提示。在Python的scripts目录,能发现一个scrapy-deploy的文件,但也无法执行。解决办法
进入Python的scripts目录,创建scrapy.bat、scrapyd-deploy.bat两个文件。
5.1编辑scrapy.bat:

@echo off
C:\ProgramData\Anaconda3\python C:\ProgramData\Anaconda3\Scripts\scrapy %*

5.2编辑scrapyd-deploy.bat:

@echo off 
    C:\ProgramData\Anaconda3\python    C:\ProgramData\Anaconda3\Scripts\scrapy-deploy %*

使用Scrapyd部署爬虫_第2张图片
6.命令行进入到某个爬虫项目目录,执行命令:

>scrapyd-deploy

#####报错问题

>scrapyd-deploy
'scrapyd-deploy' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

使用Scrapyd部署爬虫_第3张图片
6.1原因
scrapyd和scrapyd-client版本不兼容!
直接pip安装的scrapyd版本为1.2.0,scrapyd-client版本为:1.1.0
6.2解决(或第5步)
安装一个版本和scrapyd相适应的scrapyd-client

pip install scrapyd-client==1.2.0a1

6.3再次执行>scrapyd-deploy
使用Scrapyd部署爬虫_第4张图片6.4若提示部署status状态是OK,说明爬虫部署成功。如果想启动爬虫,可以输入:
project后面是项目名称,spider后面是爬虫名称

>curl http://localhost:6800/schedule.json -d project=lianjia01 -d spider=lianjia

在这里插入图片描述
7.在浏览器打开:http://localhost:6800/,查看爬虫运行情况。

使用Scrapyd部署爬虫_第5张图片
8.如果代码发生改变,可以重新打包部署,Scrapyd默认执行最新的版本
9.如果要部署到远程服务器,Scrapy项目中scrapy.cfg文件的URL需要配置为远程服务器的地址
10.Scrapyd还提供了很多方便的命令,如停止一个爬虫的命令为

>curl http://localhost:6800/cancel.json -d project=lianjia01 -d job=JOB_ID

JOB_ID从web控制台PID获得
注意:在使用远程部署的时候,要注意安全问题
链家经纪人爬取源码

你可能感兴趣的:(python,大数据)