1. 程式人生 > 其它 >【網路爬蟲學習】網頁的基本構成

【網路爬蟲學習】網頁的基本構成

爬蟲程式之所以可以抓取資料,是因為爬蟲能夠對網頁進行分析,並在網頁中提取出想要的資料。在學習 Python 爬蟲模組前,我們有必要先熟悉網頁的基本結構,這是編寫爬蟲程式的必備知識。

關於 Web 初步教程:Here

  • 網頁在組成上一般由三部分組成,分別是

    HTML(超文字標記語言)負責定義網頁的內容、

    CSS(層疊樣式表)負責描述網頁的佈局、

    JavaScript(簡稱“JS”動態指令碼語言)負責網頁的行為,它們三者在網頁中分別承擔著不同的任務。

  • 網頁從型別分為靜態與動態,

    靜態網頁是標準的 HTML 檔案,通過 GET 請求方法可以直接獲取,檔案的副檔名是.html.htm等(靜態並非靜止不動,它也包含一些動畫效果,這一點不要誤解)

    動態網頁指的是採用了動態網頁技術的頁面,比如 AJAX(是指一種建立互動式、快速動態網頁應用的網頁開發技術)和JSP(是 Java 語言建立動態網頁的技術標準) 等技術,它不需要重新載入整個頁面內容,就可以實現網頁的區域性更新。

針對靜/動態的一個重要區別在於,有無需要連線後臺資料庫,

由於靜態網頁的內容相對固定,且不需要連線後臺資料庫,因此響應速度非常快。但靜態網頁更新比較麻煩,每次更新都需要重新載入整個網頁。

動態頁面使用“動態頁面技術”與伺服器進行少量的資料交換,從而實現了網頁的非同步載入。下面看一個具體的例項:

開啟百度圖片(https://image.baidu.com/)並搜尋 Python,當滾動滑鼠滑輪時,網頁會從伺服器資料庫自動載入資料並渲染頁面,這是動態網頁和靜態網頁最基本的區別。如下所示:

動態網頁中除了有 HTML 標記語言外,還包含了一些特定功能的程式碼。這些程式碼使得瀏覽器和伺服器可以互動,伺服器端會根據客戶端的不同請求來生成網頁,其中涉及到資料庫的連線、訪問、查詢等一系列 IO 操作,所以其響應速度略差於靜態網頁。

注意:一般網站通常會使用動靜相結合的方式,使其達到一種平衡的狀態。

當然動態網頁也可以是純文字的,頁面中也可以包含各種動畫效果,這些都只是網頁內容的表現形式,其實無論網頁是否具有動態效果,只要採用了動態網站技術,那這個網頁就稱為動態網頁。


\[QAQ \]

抓取動態網頁的過程較為複雜,需要通過動態抓包來獲取客戶端與伺服器互動的 JSON 資料。抓包時,可以使用谷歌瀏覽器開發者模式(快捷鍵:F12)Network

選項,然後點選 XHR,找到獲取 JSON 資料的 URL,如下所示:

或者您也可以使用專業的抓包工具 Fiddler 。關於動態網頁的資料抓取,在後續內容會做詳細講解。

The desire of his soul is the prophecy of his fate
你靈魂的慾望,是你命運的先知。