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