部署scrapy可以使用scrapyd,通过在客户端安装scrapyd-client,服务端安装scrapyd,可以使用命令将scrapy推到服务器上进行爬虫,对服务器端不需要过多的配置,只需要保证
1.scrapyd处于运行状态,2.scrapy需要的模块全部安装
服务端操作(Centos7.2服务器)
- 通过命令
pip3 install scrapyd
安装,由于pip会将模块自动安装到python下 - 进入目录
/usr/local/python3.5.2/lib/python3.5/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 = 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
保存之后就可以启动scrapyd
了
- 进入目录
/usr/local/python3.5.2/bin
- 使用命令
setsid scrapyd
以后台的模式启动scrapyd,到此,服务端就配置好了。
客户端操作(Mac开发机)
- 此时通过客户端浏览器访问
0.0.0.0:6800
应该是可以访问到爬虫的可视化界面的 - 直接通过
pip3 install scrapyd-client
安装 - 修改要上传的scrapy项目,修改
scrapy.cfg
,首先去掉url前面的注释符号,url是scrapyd服务器的网址 -
然后project=tenCent为项目名称,可以随意起名
效果如下:
image.png接下来就是一系列的json请求操作了
scrapyd-deploy <target> -p <project> --version <version>
Target:deploy后面的名称。可以为空
Project:自行定义名称,跟爬虫的工程名字无关。
Version:自定义版本号,不写的话默认为当前时间戳。
curl http://localhost:6800/schedule.json -d project=myproject -d spider=spider_name
创建运行爬虫任务