scrapyd + scrapydweb 安装部署
scrapydweb 启动目录为:/etc/init.d
一、安装和配置 参考安装地址:https://github.com/my8100/files/blob/master/scrapydweb/README_CN.md?tdsourcetag=s_pctim_aiomsg
1.安装:
pip3 install scrapyd
pip3 install scrapydweb
如果需要远程访问 Scrapyd,则需将 Scrapyd 配置文件中的 bind_address 修改为 bind_address = 0.0.0.0,然后重启 Scrapyd service。
2.通过运行命令 scrapydweb 启动 ScrapydWeb(首次启动将自动在当前工作目录生成配置文件)。
3.基础配置:
scrapydweb配置文件在第一次执行`scrapydweb`命令的当前目录生成,文件名scrapydweb_settings_v8.py
1.启用HTTP基本认证(可选):
ENABLE_AUTH = True
USERNAME = 'username'
PASSWORD = 'password'
2.添加 Scrapyd server,支持字符串和元组两种配置格式,支持添加认证信息和分组/标签:
SCRAPYD_SERVERS = [
'127.0.0.1:6800',
# 'username:password@localhost:6801#group',
('username', 'password', 'localhost', '6801', 'group'),
]
3.添加部署爬虫项目目录地址:
通过配置 SCRAPY_PROJECTS_DIR 指定 Scrapy 项目开发目录,ScrapydWeb 将自动列出该路径下的所有项目,默认选定最新编辑的项目,选择项目后即可自动打包和部署指定项目。
SCRAPY_PROJECTS_DIR = '/home/xieyabin/myprojects/'
4.# Accept connections on the specified port, the default is 5000.
SCRAPYDWEB_PORT = 5000
scrapydweb默认端口号5000,可修改!,启动完成后可登陆127.0.0.1:5000查看
5.通过集成 LogParser,Jobs 页面自动输出爬虫任务的 pages 和 items 数据
安装: pip3 install logparser
配置文件目录:/usr/local/python3/lib/python3.6/site-packages/logparser/settings.py
SCRAPYD_LOGS_DIR = '/etc/rc.d/init.d/logs'
参考网址:https://github.com/my8100/logparser
6.邮件设置:通过轮询子进程在后台定时模拟访问 Stats 页面,ScrapydWeb 将在满足特定触发器时根据设定自动停止爬虫任务并发送通知邮件,邮件正文包含当前爬虫任务的统计信息。
1.添加邮箱帐号:
SMTP_SERVER = 'smtp.qq.com'
SMTP_PORT = 465
SMTP_OVER_SSL = True
SMTP_CONNECTION_TIMEOUT = 10
EMAIL_USERNAME = '' # defaults to FROM_ADDR
EMAIL_PASSWORD = 'password'
FROM_ADDR = 'username@qq.com'
TO_ADDRS = [FROM_ADDR]
2.设置邮件工作时间和基本触发器,以下示例代表:每隔1小时或当某一任务完成时,并且当前时间是工作日的9点,12点和17点,ScrapydWeb 将会发送通知邮件。
EMAIL_WORKING_DAYS = [1, 2, 3, 4, 5]
EMAIL_WORKING_HOURS = [9, 12, 17]
ON_JOB_RUNNING_INTERVAL = 3600
ON_JOB_FINISHED = True
3.除了基本触发器,ScrapydWeb 还提供了多种触发器用于处理不同类型的 log,包括 'CRITICAL', 'ERROR', 'WARNING', 'REDIRECT', 'RETRY' 和 'IGNORE'等。
LOG_CRITICAL_THRESHOLD = 3
LOG_CRITICAL_TRIGGER_STOP = True
LOG_CRITICAL_TRIGGER_FORCESTOP = False
# ...
LOG_IGNORE_TRIGGER_FORCESTOP = False
以上示例代表:当日志中出现3条或以上的 critical 级别的 log 时,ScrapydWeb 将自动停止当前任务,如果当前时间在邮件工作时间内,则同时发送通知邮件。
二、scrapy爬虫项目部署 首先通过配置 SCRAPY_PROJECTS_DIR 指定 Scrapy 项目开发目录,ScrapydWeb 将自动列出该路径下的所有项目,默认选定最新编辑的项目,选择项目后即可自动打包和部署指定项目。 如果 ScrapydWeb 运行在远程服务器上,除了通过当前开发主机上传常规的 egg 文件,也可以将整个项目文件夹添加到 zip/tar/tar.gz 压缩文件后直接上传即可,无需手动打包为 egg 文件。
一键部署项目:
1.首先把scrapy项目放到开发目录:/home/xieyabin/myprojects/
2.打开scrapydweb网址:http://192.168.3.191:5000/
1.点击Deploy Project,选择你的项目文件、爬虫项目,点选Package&Deploy 进行项目自动打包部署。
2.点击Run Spider 运行项目,注意选择最新部署版本 _version 运行项目。
3.项目代码更新处理:
在开发目录/home/xieyabin/myprojects/更新代码后,从第2步骤内容执行即可。
详细内容请参考:
https://github.com/my8100/files/blob/master/scrapydweb/README_CN.md?tdsourcetag=s_pctim_aiomsg