日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

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

發(fā)布時(shí)間:2023/12/20 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 scrapyd部署_如何通过 Scrapyd + ScrapydWeb 简单高效地部署和监控分布式爬虫项目 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

來(lái)自 Scrapy 官方賬號(hào)的推薦

需求分析

初級(jí)用戶:

只有一臺(tái)開(kāi)發(fā)主機(jī)

能夠通過(guò) Scrapyd-client 打包和部署 Scrapy 爬蟲(chóng)項(xiàng)目,以及通過(guò) Scrapyd JSON API 來(lái)控制爬蟲(chóng),感覺(jué) 命令行操作太麻煩 ,希望能夠通過(guò)瀏覽器直接部署和運(yùn)行項(xiàng)目

專業(yè)用戶:

有 N 臺(tái)云主機(jī),通過(guò) Scrapy-Redis 構(gòu)建分布式爬蟲(chóng)

希望集成身份認(rèn)證

希望在頁(yè)面上直觀地查看所有云主機(jī)的運(yùn)行狀態(tài)

希望 能夠自由選擇部分云主機(jī),批量部署和運(yùn)行爬蟲(chóng)項(xiàng)目,實(shí)現(xiàn)集群管理

希望自動(dòng)執(zhí)行日志分析,以及爬蟲(chóng)進(jìn)度可視化

希望在出現(xiàn)特定類型的異常日志時(shí)能夠及時(shí)通知用戶,包括自動(dòng)停止當(dāng)前爬蟲(chóng)任務(wù)

動(dòng)圖展示

集群多節(jié)點(diǎn)部署和運(yùn)行爬蟲(chóng)項(xiàng)目:

安裝和配置

請(qǐng)先確保所有主機(jī)都已經(jīng)安裝和啟動(dòng) Scrapyd ,如果需要遠(yuǎn)程訪問(wèn) Scrapyd,則需將 Scrapyd 配置文件中的 bind_address 修改為 bind_address = 0.0.0.0 ,然后重啟 Scrapyd。

開(kāi)發(fā)主機(jī)或任一臺(tái)主機(jī)安裝 ScrapydWeb : pip install scrapydweb

運(yùn)行命令 scrapydweb -h , 將在當(dāng)前工作目錄生成配置文件 scrapydweb_settings.py ,可用于下文的自定義配置。

啟用 HTTP 基本認(rèn)證: ENABLE_AUTH = True

USERNAME = 'username'

PASSWORD = 'password'

添加 Scrapyd server,支持字符串和元組兩種配置格式,支持添加認(rèn)證信息和分組/標(biāo)簽: SCRAPYD_SERVERS = [

'127.0.0.1',

# 'username:password@localhost:6801#group',

('username', 'password', 'localhost', '6801', 'group'),

]

通過(guò)運(yùn)行命令 scrapydweb 啟動(dòng) ScrapydWeb

訪問(wèn) Web UI

Overview 頁(yè)面自動(dòng)輸出所有 Scrapyd server 的運(yùn)行狀態(tài)

通過(guò)分組和過(guò)濾可以自由選擇若干臺(tái) Scrapyd server,調(diào)用 Scrapyd 提供的所有 HTTP JSON API,實(shí)現(xiàn) 一次操作,批量執(zhí)行

部署項(xiàng)目

支持指定若干臺(tái) Scrapyd server 部署項(xiàng)目

通過(guò)配置 SCRAPY_PROJECTS_DIR 指定 Scrapy 項(xiàng)目開(kāi)發(fā)目錄, ScrapydWeb 將自動(dòng)列出該路徑下的所有項(xiàng)目,選擇項(xiàng)目后即可自動(dòng)打包和部署指定項(xiàng)目:

如果 ScrapydWeb 運(yùn)行在遠(yuǎn)程 服務(wù)器 上,除了通過(guò)當(dāng)前開(kāi)發(fā)主機(jī)上傳常規(guī)的 egg 文件,也可以將整個(gè)項(xiàng)目文件夾添加到 zip/tar/tar.gz 壓縮文件后直接上傳即可,無(wú)需手動(dòng)打包:)

運(yùn)行爬蟲(chóng)

通過(guò)下拉框直接選擇 project,version 和 spider

支持傳入 Scrapy settings 和 spider arguments

同樣支持指定若干臺(tái) Scrapyd server 運(yùn)行爬蟲(chóng)

日志分析和可視化

默認(rèn)情況下, ScrapydWeb 將在后臺(tái)定時(shí)自動(dòng)讀取和分析 Scrapy log 文件并生成 Stats 頁(yè)面

爬蟲(chóng)進(jìn)度可視化

郵件通知

基于后臺(tái)定時(shí)讀取和分析 Scrapy log 文件, ScrapydWeb 將在滿足特定觸發(fā)器時(shí)發(fā)送通知郵件 ,郵件正文包含當(dāng)前運(yùn)行任務(wù)的統(tǒng)計(jì)信息。

1.添加郵箱帳號(hào):

SMTP_SERVER = 'smtp.qq.com'

SMTP_PORT = 465

SMTP_OVER_SSL = True

SMTP_CONNECTION_TIMEOUT = 10

FROM_ADDR = 'username@qq.com'

EMAIL_PASSWORD = 'password'

TO_ADDRS = ['username@qq.com']

2.設(shè)置郵件工作時(shí)間和基本觸發(fā)器,以下示例代表:每隔1小時(shí)或某一任務(wù)完成時(shí),并且當(dāng)前時(shí)間是工作日的9點(diǎn),12點(diǎn)和17點(diǎn), ScrapydWeb 將會(huì)發(fā)送通知郵件。

EMAIL_WORKING_DAYS = [1, 2, 3, 4, 5]

EMAIL_WORKING_HOURS = [9, 12, 17]

ON_JOB_RUNNING_INTERVAL = 3600

ON_JOB_FINISHED = True

3.除了基本觸發(fā)器, ScrapydWeb 還提供了多種觸發(fā)器用于處理不同類型的 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

以上示例代表:當(dāng)發(fā)現(xiàn)3條或3條以上的 critical 級(jí)別的 log 時(shí), ScrapydWeb 自動(dòng)停止當(dāng)前任務(wù) ,如果當(dāng)前時(shí)間在郵件工作時(shí)間內(nèi),則同時(shí)發(fā)送通知郵件。

GitHub 開(kāi)源

活捉幾只官方大佬,趕緊前去圍觀吧,別忘了 Star 噢!

總結(jié)

以上是生活随笔為你收集整理的scrapyd部署_如何通过 Scrapyd + ScrapydWeb 简单高效地部署和监控分布式爬虫项目的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。