
我需要比較不同時間點的單一網站。即幾天後或登入後。就像我今天收到的js和昨天一樣。有沒有一種巧妙的方法來或多或少地自動轉儲這些內容並比較它們(基於文件哈希)?
我能想到的最好方法是使用具有 TLS 檢查的代理,該代理應以明文形式提供所有下載的檔案。或使用 har 文件,該文件還應包含由該網站組成的所有文件。這些方法有什麼可能會遺漏的嗎?或者是否有其他方法可以做到這一點?
編輯:
我需要在登入後下載東西,特別是我需要知道一些腳本在後台發送/接收什麼。因此,我需要記錄活動會話並捕獲以明文形式透過網路傳輸的所有資料。
答案1
如果您需要登入並執行某些操作,那麼使用wget
或類似工具的靜態下載是不夠的。在這種情況下,我建議使用碳粉匣編寫所需操作的腳本,並轉儲所有網站內容以及回應。
基本想法是用您喜歡的語言(例如 Python、Javascript、Ruby...)編寫一個腳本,使用 Selenium Web 驅動程式來引導瀏覽器。該腳本執行登入操作、點擊元素等,一旦收到回應,您就可以儲存傳輸頁面的正文。 Python 的一個簡單範例是在這裡給出,以及一些顯示登入的程式碼這裡。
您必須透過迭代所有外部<script>
標籤、下載其原始程式碼來擴展程式碼,或透過遍歷所有<img>
標籤來下載圖像。透過這種方式,您可以輕鬆區分主要 HTML 程式碼,並查看所呼叫的腳本/圖像的各個檔案名稱。
另一種可能性是執行 Selenium 腳本瀏覽器Mob,可以匯出HAR文件。透過這種方式,您可以將自動化與自動轉儲所有內容結合。當然,然後您必須比較存在不同檢視器的 HAR 檔案。請注意,如果您希望 BrowserMob 能夠與 HTTPS 網站一起使用,則必須將中間人憑證與 BrowserMob 一起使用。