1. 程式人生 > Python爬蟲入門教學 >02 網頁基本構成和抓取原理

02 網頁基本構成和抓取原理

網頁,是一種可以被瀏覽器等客戶端解析的一種檔案。與我們平常遇到的檔案的區別是:網頁是根植於網際網路的。也就是說我們通過瀏覽器瀏覽的網頁檔案大部分是不在本地的,它有可能在世界上的任何一臺連線網路的計算機上面。而且,通過網路的超連結,我們可以瀏覽世界任意角落的網頁檔案,這就是我們平常說的網上衝浪,足不出戶,就能融入整個世界。

爬蟲抓取的是資料其實就是網頁上的內容,具體的抓取原理我們在這個小節會說到,下面我們先來看下網站的概念:

1. 網站的概念

在具體講解網頁的構成之前。我們需要先了解一下網站的概念。

網站,是對外提供服務的多個網頁構成的集合。它主要分為靜態網站和動態網站。

1.1 靜態網站

靜態網站指的是網站下所有的頁面都是使用 HTML 構成的網站。所謂靜態,不是指網頁是靜止不動的,網頁中也可以有動畫,視訊等資訊。這裡的靜態,指的是無法與服務端進行互動。只是被動的解析顯示伺服器端響應回來的資訊。

靜態網站的優點:

  1. 容易被搜尋引擎收錄,方便 SEO 優化。
  2. 內容獨立,不依賴於資料庫。

靜態網站的缺點:

  1. 維護成本比較大,大部分內容需要人工手工更新。
  2. 頁面無法互動,使用者體驗不佳。

1.2 動態網站

動態網站相對於靜態網站,它可以提供更多互動上的體驗。比如,使用者的註冊登入,實時推薦等功能。動態網站裡面不僅包含了靜態的 HTML 檔案,也會包含伺服器端的指令碼,比如 Jsp,Asp 等。

動態網站的優點:

  1. 使用者體驗良好,可以實現更多個性化的設定。
  2. 伺服器可以對客戶端進行更多的互動,方便伺服器對資料的管理和分析。

動態網站的缺點:

  1. 需要與資料庫進行處理,訪問速度大大降低。
  2. 對於搜尋引擎不友好。

不管是靜態網站裡面的網頁,還是動態網站裡面的網頁,他們都有一些網頁共同的基本內容。下面我們來看下網頁的三大基本元素:

2. 網頁的三大基本元素:

後面的章節,我們會對網頁的三大基本元素進行具體的介紹,這裡只是簡單的闡述一些基本的概念和用途。

2.1 HTML

HTML 是一種標記語言。標記語言並不是程式語言,它無法使用邏輯程式設計的方式進行程式設計。它只是約定了一種文件的展現方式。通過約定不同的標籤所代表的不同含義,從而在瀏覽器端渲染出豐富多彩的網頁。主要包含頭部和主體兩大部分。HTML 主要負責頁面的結構。

2.2 CSS

級聯樣式表,有時候也叫做風格樣式表。需要配合 HTML 來使用,從而提供豐富的渲染效果。

2.3 Javascript

是一種指令碼語言,廣泛的用於前端的邏輯實現。通過 javascript 可以實現許多定製的效果,是前端使用的最廣泛的程式語言。

綜上所述,HTML,CSS,Javascript 共同構成了網頁的豐富的樣式。三者缺一不可,沒有 HTML,CSS, Javascript 就是無源之水,毫無意思;沒有 CSS,網頁就失去了色彩和樣式,最終會使得 HTML千篇一律;沒有 Javascript,我們就無法看到動態的網頁,只是一潭死水。

3. 爬蟲抓取原理

爬蟲爬取的資料其實就是網頁上面的內容,我們需要通過特定的工具對網頁進行分析,比如說 Beautiful Soup。然後提取出 HTML 中的特定標籤下的資料。然後,將資料進行持久化儲存,方便日後的資料的分析。

簡單點講,我們使用爬蟲,最根本的目的是爬取網頁中對我們有價值的資訊和資料。所以,我們大部分爬取的工作,都是在篩選我們有用的資訊,並剔除掉無用的資訊。這就是爬蟲核心所在。

4. 小結

通過這一小節,我們認識了網頁的基本元素,在我們使用的爬蟲的過程中,隨時隨地都需要分析網頁的構成要素,因此,熟練的掌握的網頁的基本元素的構成,對於我們後面進行網頁的分析很有幫助。