如何通过 Scrapyd + ScrapydWeb 简单高效地部署和监控分布式爬虫项目

发布时间:2020-06-20 15:08:17 作者:my8100
来源:网络 阅读:10464

如何通过 Scrapyd + ScrapydWeb 简单高效地部署和监控分布式爬虫项目

安装和配置

  1. 请先确保所有主机都已经安装和启动 Scrapyd,如果需要远程访问 Scrapyd,则需将 Scrapyd 配置文件中的 bind_address 修改为 bind_address = 0.0.0.0,然后重启 Scrapyd service。
  2. 开发主机或任一台主机安装 ScrapydWebpip install scrapydweb
  3. 通过运行命令 scrapydweb 启动 ScrapydWeb(首次启动将自动在当前工作目录生成配置文件)。
  4. 启用 HTTP 基本认证(可选):
    ENABLE_AUTH = True
    USERNAME = 'username'
    PASSWORD = 'password'
  5. 添加 Scrapyd server,支持字符串和元组两种配置格式,支持添加认证信息和分组/标签:
    SCRAPYD_SERVERS = [
    '127.0.0.1',
    # 'username:password@localhost:6801#group',
    ('username', 'password', 'localhost', '6801', 'group'),
    ]
  6. 运行命令 scrapydweb 重启 ScrapydWeb

访问 web UI

通过浏览器访问并登录 http://127.0.0.1:5000。

如何通过 Scrapyd + ScrapydWeb 简单高效地部署和监控分布式爬虫项目

如何通过 Scrapyd + ScrapydWeb 简单高效地部署和监控分布式爬虫项目

部署项目

如何通过 Scrapyd + ScrapydWeb 简单高效地部署和监控分布式爬虫项目

运行爬虫

如何通过 Scrapyd + ScrapydWeb 简单高效地部署和监控分布式爬虫项目

日志分析和可视化

如何通过 Scrapyd + ScrapydWeb 简单高效地部署和监控分布式爬虫项目

定时爬虫任务

如何通过 Scrapyd + ScrapydWeb 简单高效地部署和监控分布式爬虫项目

邮件通知

通过轮询子进程在后台定时模拟访问 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* 将会发送通知邮件。
```python
EMAIL_WORKING_DAYS = [1, 2, 3, 4, 5]
EMAIL_WORKING_HOURS = [9, 12, 17]
ON_JOB_RUNNING_INTERVAL = 3600
ON_JOB_FINISHED = True
  1. 除了基本触发器,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 将自动停止当前任务,如果当前时间在邮件工作时间内,则同时发送通知邮件。

移动端 UI

如何通过 Scrapyd + ScrapydWeb 简单高效地部署和监控分布式爬虫项目

GitHub 开源

my8100/scrapydweb

推荐阅读:
  1. 举例说明简单的python爬虫代码
  2. PHP代码如何实现爬虫

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

爬虫 分布式 scrapy

上一篇:VMware App Volumes Manager安装

下一篇:搭建大数据环境-之-虚拟机网卡配置

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》