推薦一個“牛逼”的開源的網站變化檢測系統
現在的互聯網服務已經深入社會方方面面,監控網站的變化是許多網站管理人員、信息采集人員、開發人員、運營人員,或者是普通人經常需要做的事情,比如:前段時間我就不斷的關注教育局網站的"小升初"政策,目的是希望第一時間獲得政策信息,便于后面為小孩填報初中志愿。又比如:我有時候會跟蹤電商網站的某個商品價格,希望在它最優惠的時候購買。還比如:我們要從網站合規爬取公開信息,但是我們不希望頻繁的去訪問網站,也不想每次都全量獲取信息,因此跟蹤網站信息是否發生變化,非常有必要。
以上這些場景,如果沒有自動化技術的應用,我只能是重復著每隔一段時間去打開網站查看相關內容。這種做法顯然太笨拙。
本文主要推薦的是一個開源網頁變更檢測系統—— Changedetection。
Changedetection在GitHub具有16.8K星,源碼地址:https://github.com/dgtlmoon/changedetection.io
主要的功能特性:
- 許多觸發器過濾器,例如“文本觸發器”、“通過選擇器刪除文本”、“忽略文本”、“提取文本”,也使用正則表達式!
- 使用xPath(1.0)和CSS選擇器定位元素,使用JSONPath或jq輕松監控復雜的JSON
- 可在非JS和基于Chrome JS的“抓取器”之間快速切換
- 跟蹤PDF文件中的更改(監控PDF中更改的文本,還監控PDF文件大小和校驗)
- 輕松設置檢測網站的頻率
- 在提取文本之前執行JS(用于登錄,參見UI中的示例!)
- 請求頭,指定POST或GET和其他方法
- 使用“視覺工具”幫助定位特定元素
- 每個監視可配置代理
- 在網頁中檢測到更改時,發送帶有通知的屏幕截圖
使用操作舉例
(1) 支持使用視覺選擇器工具定位網頁的特定部分
因此,很容易看到什么改變了,檢查的字,行,或個別字符。
(2) 支持檢測流程配置
使用瀏覽器步驟配置,在執行網頁變更檢測之前可以添加基本步驟,例如登錄網站、將產品添加到購物車、接受cookie登錄、輸入日期和優化搜索。
(3) 支持驚艷的補貨和價格變化通知
通過啟用“單個產品頁面的重新庫存價格檢測”選項以激活監控產品定價的最佳方式,這將提取HTML頁面中的任何元數據,并為您提供許多選項來跟蹤產品的定價。
之后,通過儀表板就可以輕松監控產品價格,當產品價格發生變化或再次有貨時,獲得警報和通知!
可以設置價格變化通知參數,價格上限和下限,價格變化百分比等。
應用場景舉例
- 產品和服務在定價上有變化
- 缺貨通知和返回庫存通知
- 監控和跟蹤PDF文件的更改,了解PDF文件何時有文本更改。
- 政府部門更新(更改通常僅在其網站上)
- 新的軟件發布,當你不在他們的郵件列表中時的安全公告。
- 對變化感到困惑
- 補貨警報和監控
- 房地產上市變化
- 知道什么時候你最喜歡的威士忌是銷售,或其他特殊交易宣布之前,任何人
- 來自政府網站的COVID相關新聞
- 關注大學/組織新聞網站
- 檢測和監控JSON API響應中的更改
- JSON API監控和警報
- 法律的和其他文件的變更
- 當文本出現在網站上時,通過通知觸發API調用
- 使用JSON過濾器和JSON通知將API粘合在一起
- 根據Web內容的變化創建RSS源
- 監控HTML源代碼的意外更改,加強您的PCI合規性
- 你有一個非常敏感的URL列表要看,你不想使用付費的替代品。(記住,你就是產品)
- 當某些關鍵字出現在Twitter搜索結果中時獲得通知
- 主動搜索工作,在公司更新職業頁面時獲得通知,搜索工作門戶網站的關鍵字。
- 在招聘平臺上有新職位空缺時獲取提醒
- 網站污損監控
- 合規監管
安裝使用
這個項目支持使用Docker 安裝。
docker compose up -d
單例模式啟動Docker:
docker run -d --restart always -p "127.0.0.1:5000:5000" -v datastore-volume:/datastore --name changedetection.io dgtlmoon/changedetection.io
也可以使用Pip安裝:
pip3 install changedetection.io
changedetection.io -d /path/to/empty/data/dir -p 5000
然后訪問http://127.0.0.1:5000,即可訪問UI。
該項目使用MIT開源許可證,因此也可以基于這個項目進行擴展開發、研究、部署。