網(wǎng)頁基本構(gòu)成和抓取原理
網(wǎng)頁,是一種可以被瀏覽器等客戶端解析的一種文件。與我們平常遇到的文件的區(qū)別是:網(wǎng)頁是根植于互聯(lián)網(wǎng)的。也就是說我們通過瀏覽器瀏覽的網(wǎng)頁文件大部分是不在本地的,它有可能在世界上的任何一臺連接網(wǎng)絡(luò)的計算機(jī)上面。而且,通過網(wǎng)絡(luò)的超鏈接,我們可以瀏覽世界任意角落的網(wǎng)頁文件,這就是我們平常說的網(wǎng)上沖浪,足不出戶,就能融入整個世界。
爬蟲抓取的是數(shù)據(jù)其實就是網(wǎng)頁上的內(nèi)容,具體的抓取原理我們在這個小節(jié)會說到,下面我們先來看下網(wǎng)站的概念:
1. 網(wǎng)站的概念
在具體講解網(wǎng)頁的構(gòu)成之前。我們需要先了解一下網(wǎng)站的概念。
網(wǎng)站,是對外提供服務(wù)的多個網(wǎng)頁構(gòu)成的集合。它主要分為靜態(tài)網(wǎng)站和動態(tài)網(wǎng)站。
1.1 靜態(tài)網(wǎng)站
靜態(tài)網(wǎng)站指的是網(wǎng)站下所有的頁面都是使用 HTML 構(gòu)成的網(wǎng)站。所謂靜態(tài),不是指網(wǎng)頁是靜止不動的,網(wǎng)頁中也可以有動畫,視頻等信息。這里的靜態(tài),指的是無法與服務(wù)端進(jìn)行互動。只是被動的解析顯示服務(wù)器端響應(yīng)回來的信息。
靜態(tài)網(wǎng)站的優(yōu)點(diǎn):
- 容易被搜索引擎收錄,方便 SEO 優(yōu)化。
- 內(nèi)容獨(dú)立,不依賴于數(shù)據(jù)庫。
靜態(tài)網(wǎng)站的缺點(diǎn):
- 維護(hù)成本比較大,大部分內(nèi)容需要人工手工更新。
- 頁面無法互動,用戶體驗不佳。
1.2 動態(tài)網(wǎng)站
動態(tài)網(wǎng)站相對于靜態(tài)網(wǎng)站,它可以提供更多交互上的體驗。比如,用戶的注冊登錄,實時推薦等功能。動態(tài)網(wǎng)站里面不僅包含了靜態(tài)的 HTML 文件,也會包含服務(wù)器端的腳本,比如 Jsp,Asp 等。
動態(tài)網(wǎng)站的優(yōu)點(diǎn):
- 用戶體驗良好,可以實現(xiàn)更多個性化的設(shè)置。
- 服務(wù)器可以對客戶端進(jìn)行更多的互動,方便服務(wù)器對數(shù)據(jù)的管理和分析。
動態(tài)網(wǎng)站的缺點(diǎn):
- 需要與數(shù)據(jù)庫進(jìn)行處理,訪問速度大大降低。
- 對于搜索引擎不友好。
不管是靜態(tài)網(wǎng)站里面的網(wǎng)頁,還是動態(tài)網(wǎng)站里面的網(wǎng)頁,他們都有一些網(wǎng)頁共同的基本內(nèi)容。下面我們來看下網(wǎng)頁的三大基本元素:
2. 網(wǎng)頁的三大基本元素:
后面的章節(jié),我們會對網(wǎng)頁的三大基本元素進(jìn)行具體的介紹,這里只是簡單的闡述一些基本的概念和用途。
2.1 HTML
HTML 是一種標(biāo)記語言。標(biāo)記語言并不是編程語言,它無法使用邏輯編程的方式進(jìn)行編程。它只是約定了一種文檔的展現(xiàn)方式。通過約定不同的標(biāo)簽所代表的不同含義,從而在瀏覽器端渲染出豐富多彩的網(wǎng)頁。主要包含頭部和主體兩大部分。HTML 主要負(fù)責(zé)頁面的結(jié)構(gòu)。
2.2 CSS
級聯(lián)樣式表,有時候也叫做風(fēng)格樣式表。需要配合 HTML 來使用,從而提供豐富的渲染效果。
2.3 Javascript
是一種腳本語言,廣泛的用于前端的邏輯實現(xiàn)。通過 javascript 可以實現(xiàn)許多定制的效果,是前端使用的最廣泛的編程語言。
綜上所述,HTML,CSS,Javascript 共同構(gòu)成了網(wǎng)頁的豐富的樣式。三者缺一不可,沒有 HTML,CSS, Javascript 就是無源之水,毫無意思;沒有 CSS,網(wǎng)頁就失去了色彩和樣式,最終會使得 HTML千篇一律;沒有 Javascript,我們就無法看到動態(tài)的網(wǎng)頁,只是一潭死水。
3. 爬蟲抓取原理
爬蟲爬取的數(shù)據(jù)其實就是網(wǎng)頁上面的內(nèi)容,我們需要通過特定的工具對網(wǎng)頁進(jìn)行分析,比如說 Beautiful Soup。然后提取出 HTML 中的特定標(biāo)簽下的數(shù)據(jù)。然后,將數(shù)據(jù)進(jìn)行持久化保存,方便日后的數(shù)據(jù)的分析。
簡單點(diǎn)講,我們使用爬蟲,最根本的目的是爬取網(wǎng)頁中對我們有價值的信息和數(shù)據(jù)。所以,我們大部分爬取的工作,都是在篩選我們有用的信息,并剔除掉無用的信息。這就是爬蟲核心所在。
4. 小結(jié)
通過這一小節(jié),我們認(rèn)識了網(wǎng)頁的基本元素,在我們使用的爬蟲的過程中,隨時隨地都需要分析網(wǎng)頁的構(gòu)成要素,因此,熟練的掌握的網(wǎng)頁的基本元素的構(gòu)成,對于我們后面進(jìn)行網(wǎng)頁的分析很有幫助。