中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何通過 Scrapyd + ScrapydWeb 簡單高效地部署和監控分布式爬蟲項目

發布時間:2020-06-20 15:08:17 來源:網絡 閱讀:10464 作者:my8100 欄目:編程語言

如何通過 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。

  • Servers 頁面自動輸出所有 Scrapyd server 的運行狀態。
  • 通過分組和過濾可以自由選擇若干臺 Scrapyd server,然后在上方 Tabs 標簽頁中選擇 Scrapyd 提供的任一 HTTP JSON API,實現一次操作,批量執行

如何通過 Scrapyd + ScrapydWeb 簡單高效地部署和監控分布式爬蟲項目

  • 通過集成 LogParser,Jobs 頁面自動輸出爬蟲任務的 pages 和 items 數據。
  • ScrapydWeb 默認通過定時創建快照將爬蟲任務列表信息保存到數據庫,即使重啟 Scrapyd server 也不會丟失任務信息。(issue 12)

如何通過 Scrapyd + ScrapydWeb 簡單高效地部署和監控分布式爬蟲項目

部署項目

  • 通過配置 SCRAPY_PROJECTS_DIR 指定 Scrapy 項目開發目錄,ScrapydWeb 將自動列出該路徑下的所有項目,默認選定最新編輯的項目,選擇項目后即可自動打包和部署指定項目。
  • 如果 ScrapydWeb 運行在遠程服務器上,除了通過當前開發主機上傳常規的 egg 文件,也可以將整個項目文件夾添加到 zip/tar/tar.gz 壓縮文件后直接上傳即可,無需手動打包為 egg 文件。
  • 支持一鍵部署項目到 Scrapyd server 集群。

如何通過 Scrapyd + ScrapydWeb 簡單高效地部署和監控分布式爬蟲項目

運行爬蟲

  • 通過下拉框依次選擇 project,version 和 spider。
  • 支持傳入 Scrapy settings 和 spider arguments。
  • 支持創建基于 APScheduler 的定時爬蟲任務。(如需同時啟動大量爬蟲任務,則需調整 Scrapyd 配置文件的 max-proc 參數)
  • 支持在 Scrapyd server 集群上一鍵啟動分布式爬蟲。

如何通過 Scrapyd + ScrapydWeb 簡單高效地部署和監控分布式爬蟲項目

日志分析和可視化

  • 如果在同一臺主機運行 Scrapyd 和 ScrapydWeb,建議設置 SCRAPYD_LOGS_DIRENABLE_LOGPARSER,則啟動 ScrapydWeb 時將自動運行 LogParser,該子進程通過定時增量式解析指定目錄下的 Scrapy 日志文件以加快 Stats 頁面的生成,避免因請求原始日志文件而占用大量內存和網絡資源。
  • 同理,如果需要管理 Scrapyd server 集群,建議在其余主機單獨安裝和啟動 LogParser
  • 如果安裝的 Scrapy 版本不大于 1.5.1,LogParser 將能夠自動通過 Scrapy 內建的 Telnet Console 讀取 Crawler.stats 和 Crawler.engine 數據,以便掌握 Scrapy 內部運行狀態。

如何通過 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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

松桃| 积石山| 景德镇市| 焦作市| 吉首市| 许昌县| 大埔县| 常山县| 宁河县| 弥勒县| 龙井市| 绍兴县| 施甸县| 澜沧| 德惠市| 舞钢市| 富源县| 娱乐| 博野县| 河津市| 西乌珠穆沁旗| 九龙县| 开远市| 金川县| 海南省| 灵山县| 隆回县| 微山县| 阿克| 弥勒县| 永泰县| 伊金霍洛旗| 克什克腾旗| 教育| 郯城县| 昭苏县| 德庆县| 右玉县| 永善县| 南平市| 兰州市|