## 第一部分:环境安装
1.安装python 以及爬虫项目需要的各类数据库(redis,postgresql)并远程连接数据库。
2.pip安装爬虫项目需要的python库(requests,Scrapy,scrapy-redis,selenium)等等。
## 第二部分:上传项目
上传爬虫项目到linux。
## 第三部分:scrapyd部署
1.部署前需要确保爬虫项目无问题,直接使用python main_spider.py确保爬虫项目在云端能正常运行。
2.安装scrapyd和scrapd-client
pip install scrapyd
pip install scrapyd-client
3. 修改scrapyd配置文件default_scrapyd.conf,确保能够远程访问。
使用find / -name default_scrapyd.conf命令查找配置文件路径。
用vi打开将
bind_address = 127.0.0.1
改为0.0.0.0保存,就可以远程访问了(确保阿里云、及防火墙的6800端口是打开的)。
4. 启动scrapyd
命令:scrapyd
出现以下信息就是运行成功
2019-03-18T15:24:22+0800 [-] Loading /usr/local/lib/python3.7/site-packages/scrapyd/txapp.py...
2019-03-18T15:24:22+0800 [-] Scrapyd web console available at http://0.0.0.0:6800/
2019-03-18T15:24:22+0800 [-] Loaded.
2019-03-18T15:24:22+0800 [twisted.scripts._twistd_unix.UnixAppLogger#info] twistd 18.9.0 (/usr/local/bin/python3.7 3.7.0) starting up.
2019-03-18T15:24:22+0800 [twisted.scripts._twistd_unix.UnixAppLogger#info] reactor class: twisted.internet.epollreactor.EPollReactor.
2019-03-18T15:24:22+0800 [-] Site starting on 6800
2019-03-18T15:24:22+0800 [twisted.web.server.Site#info] Starting factory <twisted.web.server.Site object at 0x7fe2e53b5048>
2019-03-18T15:24:22+0800 [Launcher] Scrapyd 1.2.0 started: max_proc=4, runner='scrapyd.runner'
可以http://120.78.xx.xx:6800/查看是否成功
Scrapyd
Available projects: weibo_spider_02, default
How to schedule a spider?
To schedule a spider you need to use the API (this web UI is only for monitoring)
Example using curl:
curl http://localhost:6800/schedule.json -d project=default -d spider=somespider
For more information about the API, see the Scrapyd documentation
表示成功
5.进入虚拟环境,进入到你的爬虫项目中,进入带有scrapy.cfg文件的目录,执行scrapyd-deploy,测试scrapyd-deploy是否可以运行,如出现Unknown target: default则表示无问题。
6. 打开爬虫项目中的scrapy.cfg文件,这个文件就是给scrapyd-deploy使用的,将
url = http://localhost:6800/
这行代码解掉注释,并且给设置你的部署名称(以weibo为例)
[deploy:weibo]
再次执行scrapyd-deploy -l 启动服务,可以看到设置的名称.
weibo http://localhost:6800/
7.开始打包前,执行一个命令:scrapy list ,这个命令执行成功说明可以打包了,如果没执行成功说明还有工作没完成。
8.执行打包命令: scrapyd-deploy 部署名称 -p 项目名称
9.curl http://localhost:6800/schedule.json -d project=项目名称 -d spider=爬虫名称
可以去网页中http://120.78.xx.xx:6800查看爬虫运行状态
——>停止爬虫
curl http://localhost:6800/cancel.json -d project=项目名称 -d job=运行ID
——>删除scrapy项目
注意:一般删除scrapy项目,需要先执行命令停止项目下在远行的爬虫
curl http://localhost:6800/delproject.json-d project=scrapy项目名称
——>查看有多少个scrapy项目在api中
curl http://localhost:6800/listprojects.json
——>查看指定的scrapy项目中有多少个爬虫
curl http://localhost:6800/listspiders.json?project=scrapy项目名称