Python Web Contents Capture Tool

English 简体中文 繁体中文 ภาษาไทย Tiếng Việt
Summary

This article introduces two Python tools for web data collection: a Web Contents Download Tool and a Web Screenshot Tool. The download tool systematically scrapes and saves all webpage components, including HTML, CSS, JavaScript, images, and SSL certificates, from a list of URLs into structured local folders. Complementing this, the screenshot tool captures full or partial webpage images in batches, leveraging various browser drivers or Qt5. Both utilities offer flexible APIs for individual or batch URL processing. A practical application combines these tools with the NUS-Phishperida project into a multi-threaded Web Attestation Tool, automating the process of downloading content, capturing screenshots, and analyzing thousands of URLs to identify potential phishing websites.

在本節中,我們將介紹兩種簡單的網頁內容擷取工具:「網頁內容下載工具」和「網頁螢幕截圖工具」。開發這些工具是為了方便收集網路資料,這些資料可用於各種大數據專案。此外,我們將探討一個使用案例,其中這些工具被用於批量網路釣魚網站驗證。

# Author:      Yuancheng Liu
# Created:     2024/09/10
# Version:     v_0.2.1
# Copyright:   Copyright (c) 2025 Liu Yuancheng

----------------------------------------------------------------------------------------------------

Python 網頁內容下載工具

程式設計目的:我們的目標是開發一個專為大數據專案量身定制的 Python 函式庫,專門用於資料收集。該函式庫將有助於抓取和下載與多個批次的網頁相關的所有元件,包括 .html 檔案、.css 樣式表、圖片、XML 檔案、影片、JavaScript 檔案和主機 SSL 憑證,所有這些都基於提供的 URL 列表。

程式的工作流程如下所示:

Figure-00: Python_web_contents_download_tool_workflow_diagram, version v0.1.2 (2024)

簡介

此模組提供了一個 API,用於下載網頁的各種元件,包括 HTML 檔案、圖片、CSS 檔案、XML 檔案、JavaScript 檔案和超連結,所有這些都基於輸入的 URL(必須以 'http' 或 'https' 開頭)。該模組的輸入和輸出流程如下圖所示:

該函式庫將首先下載網頁的主要 html 內容,然後使用 python beautifulsoup lib 解析網頁 html 檔案來源中的所有內容,以取得連結的 html、圖片、java script、css,然後逐一下載這些內容並儲存在相關的本機資料夾中。它將提供一個靈活的 API,可以與其他程式無縫整合。

程式使用方式

使用者有兩個選項來執行程式:單獨處理 URL 或批量處理多個 URL。

使用主控台介面

若要單獨處理 URL,使用者可以直接執行程式並按照提供的步驟操作:

python webDownload.py

使用記錄檔批量處理 URL

步驟 1:準備要處理的 URL 列表,方法是將它們複製到 URL 記錄檔 "urllist.txt" 中。

步驟 2:導航到程式資料夾並使用以下命令執行程式:python testCase.py

步驟 3:檢查結果:

例如,如果您將 url "https://www.carousell.sg/" 作為您要檢查的第一個 url 複製到檔案 "urllist.txt" 檔案中,則所有 html 檔案、圖片檔案和 js 檔案都將位於資料夾 "`1_www.carousell.sg_files`" 下。

  • 主網頁將儲存為:"`1_www.carousell.sg_files/1_www.carousell.sg.html`"
  • 頁面中使用的圖片將儲存在資料夾:"`1_www.carousell.sg_files/img`"
  • href 匯入的 html/imge/css 將儲存在資料夾:"`1_www.carousell.sg_files/link`"
  • 頁面使用的 js 檔案將儲存在資料夾:"`1_www.carousell.sg_files/script`"
  • url https://www.carousell.sg/ 字串將儲存在檔案 1_www.carousell.sg_files/Info.txt 中。
  • 主機 www.carousell 的憑證將下載為檔案 1_www.carousell.sg_files/cert/cert.der。

專案 GitHub Repo 連結 : https://github.com/LiuYuancheng/Py_Web_Contents_Download_Tool

----------------------------------------------------------------------------------------------------

Python 網頁螢幕截圖工具

程式設計目的:我們的目標是為 bigdata 專案的資料收集目的開發一個 Python 函式庫,該函式庫可以根據 URL 列表批量擷取網頁螢幕截圖,以支援各種程式化使用案例。程式的工作流程如下所示:

簡介

此模組允許使用者使用不同的網頁瀏覽器驅動程式或 Qt5 函式庫的 QtWebEngineWidgets,根據提供的 URL 擷取特定部分或整個網頁的螢幕截圖。使用者可以在物件初始化期間透過指定 "driverMode" 參數來選擇用於擷取網頁的所需函式庫。該模組作為單執行緒程式運作。模組的輸入和輸出流程如下所示:

該函式庫利用兩種不同的網頁驅動程式,Selenium Google Chrome Driver 和 QT5 Web Engine,來擷取網頁螢幕截圖。它提供了一個靈活的 API,可以與其他程式無縫整合。

若要同時處理多個 URL,使用者可以將他們想要擷取的所有 URL 列在 "urllist.txt" 檔案中,如下所示(以字元 '#' 開頭的行將被視為註解並忽略):

# Add the URL you want to download line by line(The url must start with 'http' or 'https' ):
# example: https://www.google.com
https://www.google.com
https://www.carousell.sg/
https://www.google.com/search?q=github&sxsrf=AOaemvJh3t5_h8H85AE8Ajbb1IMnBrRISA%3A1636698503535&source=hp&ei=hwmOYY6mHdGkqtsPq8S9sAY&iflsig=ALs

之後,執行測試案例程式 testCase.py,擷取的螢幕截圖將儲存在輸出資料夾 outputFolder 中。

程式使用方式

使用者有兩個選項來執行程式:單獨處理 URL 或批量處理多個 URL。所有螢幕截圖影像檔案都將以 shot_yymmdd_hhmmss.png 格式儲存在輸出資料夾 outputFolder 下。

使用主控台介面

若要單獨處理 URL,使用者可以直接執行程式並按照提供的步驟操作:

python webScreenShoter.py

使用記錄檔批量處理 URL

準備要處理的 URL 列表,方法是將它們複製到 URL 記錄檔 "urllist.txt" 中。

導航到程式資料夾並使用以下命令執行程式:python testCase.py

檢查結果:例如,如果 "https://www.carousell.sg/" 是 "urllist.txt" 中列出的第一個 URL,則螢幕截圖檔案 shot.png 將儲存在資料夾 "1_www.carousell.sg_files" 中。

專案 GitHub Repo 連結 :

https://github.com/LiuYuancheng/Py_Web_Screenshot_Capture_Tool

----------------------------------------------------------------------------------------------------

使用案例:Python 網頁驗證工具

程式設計目的:我們想要建立一個自動化工具來檢查幾個批次的網頁 URL(範圍從 1 到 10,000),並識別其中的網路釣魚網站/URL。該程式將從給定的 URL 列表下載網頁內容,然後擷取網頁的螢幕截圖,並將所有資料饋送到 Phishperida 程式中。程式的工作流程如下所示:

該專案將利用由 Yun Lin 教授和 Ruofan Liu 開發的 NUS-Phishperida 專案,用於網路釣魚網站識別。此外,它將利用 Py_Web_Screenshot_Capture_ToolPy_Web_Contents_Download_Tool 進行自動化網頁內容歸檔。

簡介

此模組專為使用 NUS-Phishperida-Project 提供的 API 進行 URL/網頁驗證而設計。它包含四個主要模組:

  • DatasetLoader:負責從組態檔案中批量載入 URL 資料集,並篩選已處理的 URL。
  • WebDownloader:有助於抓取和下載網頁元件。
  • WebScreenShoter:擷取網頁螢幕截圖。
  • PhishperidaPKG:一個封裝模組,用於調用 Phishperida 函式庫並記錄驗證結果。

對於每個 URL,程式都會執行以下步驟:

  1. 利用 WebDownloader 模組下載所有網頁元件。
  2. 使用 webScreenShoter 模組擷取網頁螢幕截圖。
  3. 將網頁元件和螢幕截圖傳遞給 PhishperidaPKG 進行 siamese 檢查。

DatasetLoader 模組

  • 此模組從 URL 列表中載入 URL 資料,記錄已處理的 URL 和錯誤 URL。如果程式/執行緒崩潰,它會在重新啟動時恢復其任務,忽略已處理的 URL 並在繼續處理未處理的 URL 之前移除損壞的檔案。

WebDownloader 模組

  • 請參閱先前的 Python 網頁內容下載工具

WebScreenShoter 模組

  • 請參閱先前的 Python 網頁螢幕截圖工具

PhishperidaPKG 模組

多執行緒設計

使用具有背景執行控制器、多執行緒執行、任務平衡器的多執行緒:

程式使用方式

將您要檢查的 url 複製到 url 記錄檔 "urllist.txt" 中

Cd 到程式資料夾並執行程式執行 cmd:

python webAttestation.py

在檔案中檢查處理結果:resultPcdurl.txt 和 resultErrurl.txt

專案 GitHub Repo 連結: https://github.com/LiuYuancheng/Python_Web_Attestation_Tool


感謝您花時間查看文章詳細資訊,如果您有任何問題和建議或發現任何程式錯誤,請隨時給我留言。如果您能提供一些意見並分享任何改進建議,以便我們改進工作,將不勝感激〜

 

  RELATED

No related programming articles found. Browse all programming tutorials and articles.

  COMMENTS

0

No comment for this article.