網頁基本構成和抓取原理
網頁,是一種可以被瀏覽器等客戶端解析的一種文件。與我們平常遇到的文件的區別是:網頁是根植于互聯網的。也就是說我們通過瀏覽器瀏覽的網頁文件大部分是不在本地的,它有可能在世界上的任何一臺連接網絡的計算機上面。而且,通過網絡的超鏈接,我們可以瀏覽世界任意角落的網頁文件,這就是我們平常說的網上沖浪,足不出戶,就能融入整個世界。
爬蟲抓取的是數據其實就是網頁上的內容,具體的抓取原理我們在這個小節會說到,下面我們先來看下網站的概念:
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. 小結
通過這一小節,我們認識了網頁的基本元素,在我們使用的爬蟲的過程中,隨時隨地都需要分析網頁的構成要素,因此,熟練的掌握的網頁的基本元素的構成,對于我們后面進行網頁的分析很有幫助。