02 網頁基本構成和抓取原理
網頁,是一種可以被瀏覽器等客戶端解析的一種檔案。與我們平常遇到的檔案的區別是:網頁是根植於網際網路的。也就是說我們通過瀏覽器瀏覽的網頁檔案大部分是不在本地的,它有可能在世界上的任何一臺連線網路的計算機上面。而且,通過網路的超連結,我們可以瀏覽世界任意角落的網頁檔案,這就是我們平常說的網上衝浪,足不出戶,就能融入整個世界。
爬蟲抓取的是資料其實就是網頁上的內容,具體的抓取原理我們在這個小節會說到,下面我們先來看下網站的概念:
1. 網站的概念
在具體講解網頁的構成之前。我們需要先了解一下網站的概念。
網站,是對外提供服務的多個網頁構成的集合。它主要分為靜態網站和動態網站。
1.1 靜態網站
靜態網站指的是網站下所有的頁面都是使用 HTML 構成的網站。所謂靜態,不是指網頁是靜止不動的,網頁中也可以有動畫,視訊等資訊。這裡的靜態,指的是無法與服務端進行互動。只是被動的解析顯示伺服器端響應回來的資訊。
靜態網站的優點:
- 容易被搜尋引擎收錄,方便 SEO 優化。
- 內容獨立,不依賴於資料庫。
靜態網站的缺點:
- 維護成本比較大,大部分內容需要人工手工更新。
- 頁面無法互動,使用者體驗不佳。
1.2 動態網站
動態網站相對於靜態網站,它可以提供更多互動上的體驗。比如,使用者的註冊登入,實時推薦等功能。動態網站裡面不僅包含了靜態的 HTML 檔案,也會包含伺服器端的指令碼,比如 Jsp,Asp 等。
動態網站的優點:
- 使用者體驗良好,可以實現更多個性化的設定。
- 伺服器可以對客戶端進行更多的互動,方便伺服器對資料的管理和分析。
動態網站的缺點:
- 需要與資料庫進行處理,訪問速度大大降低。
- 對於搜尋引擎不友好。
不管是靜態網站裡面的網頁,還是動態網站裡面的網頁,他們都有一些網頁共同的基本內容。下面我們來看下網頁的三大基本元素:
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. 小結
通過這一小節,我們認識了網頁的基本元素,在我們使用的爬蟲的過程中,隨時隨地都需要分析網頁的構成要素,因此,熟練的掌握的網頁的基本元素的構成,對於我們後面進行網頁的分析很有幫助。