1. 程式人生 > >scrapydweb的初步使用(管理分布式爬蟲)

scrapydweb的初步使用(管理分布式爬蟲)

working 選擇 view 壓縮 tin lse you 恢復 width

https://github.com/my8100/files/blob/master/scrapydweb/README_CN.md

一.安裝配置  

  1、請先確保所有主機都已經安裝和啟動 Scrapyd,如果需要遠程訪問 Scrapyd,則需將 Scrapyd 配置文件中的 bind_address 修改為 bind_address = 0.0.0.0,然後重啟   Scrapyd。

  2、開發主機或任一臺主機安裝 ScrapydWebpip install scrapydweb

  3、運行命令 scrapydweb -h將在當前工作目錄生成配置文件 scrapydweb_settings.py

,可用於下文的自定義配置。

  4、啟用 HTTP 基本認證

ENABLE_AUTH = True
USERNAME = username
PASSWORD = password 
  1. 添加 Scrapyd server,支持字符串和元組兩種配置格式,支持添加認證信息和分組/標簽:
SCRAPYD_SERVERS = [
    #‘127.0.0.1:6800‘,
    # ‘username:[email protected]:6801#group‘,
    106.12.112.139:6800,
]

  報錯情況:(在)

In order to automatically run LogParser at startup, you have to set up the SCRAPYD_LOGS_DIR option first.
Otherwise, set 
ENABLE_LOGPARSER = False if you are not running any Scrapyd service on the current ScrapydWeb host. Note that you can run the LogParser service separately via command logparser as you like. Check and update your settings in F:/scrapyweb/scrapydweb_settings_v8.py

  如果出現這樣的錯誤去配置文件中把

  ‘ENABLE_LOGPARSER = True‘改成False

 6.通過運行命令 scrapydweb 啟動 ScrapydWeb

二.頁面管理

通過瀏覽器訪問並登錄 http://127.0.0.1:5000

  • Overview 頁面自動輸出所有 Scrapyd server 的運行狀態

  • 通過分組和過濾可以自由選擇若幹臺 Scrapyd server,調用 Scrapyd 提供的所有 HTTP JSON API,實現一次操作,批量執行

技術分享圖片

三.部署項目  

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

  技術分享圖片

  技術分享圖片

  技術分享圖片

四.運行爬蟲  

  • 通過下拉框直接選擇 project,version 和 spider

  • 支持傳入 Scrapy settings 和 spider arguments

  • 同樣支持指定若幹臺 Scrapyd server 運行爬蟲

 技術分享圖片

五.定時爬蟲任務

  • 支持查看爬蟲任務的參數信息,追溯歷史記錄
  • 支持暫停,恢復,觸發,停止,編輯和刪除任務等操

技術分享圖片

六.日誌可視化

  默認情況下,ScrapydWeb 將在後臺定時自動讀取和分析 Scrapy log 文件並生成 Stats 頁面

  技術分享圖片

  技術分享圖片

七.郵件通知

  基於後臺定時讀取和分析 Scrapy log 文件,ScrapydWeb 將在滿足特定觸發器時發送通知郵件,郵件正文包含當前運行任務的統計信息。

  1、添加郵箱帳號:

SMTP_SERVER = smtp.qq.com
SMTP_PORT = 465
SMTP_OVER_SSL = True
SMTP_CONNECTION_TIMEOUT = 10

FROM_ADDR = [email protected]
EMAIL_PASSWORD = password
TO_ADDRS = [[email protected]]

  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條或3條以上的 critical 級別的 log 時,ScrapydWeb 自動停止當前任務,如果當前時間在郵件工作時間內,則同時發送通知郵件。

scrapydweb的初步使用(管理分布式爬蟲)