概要
將通過介紹網(wǎng)絡(luò)連接來解釋爬蟲的原理踪危,并使用Chrome瀏覽器認(rèn)識(shí)網(wǎng)頁構(gòu)造并查詢網(wǎng)頁信息笆怠。
主要涉及主要知識(shí)點(diǎn)如下:
- 網(wǎng)絡(luò)連接:介紹網(wǎng)絡(luò)連接的基本過程铝耻。
- 爬蟲原理:介紹爬蟲的基本原理和過程
- Chrome瀏覽器:使用Chrome瀏覽器認(rèn)識(shí)網(wǎng)頁構(gòu)造和查詢網(wǎng)頁信息
正文
爬蟲原理
1.網(wǎng)絡(luò)連接
網(wǎng)絡(luò)連接像是在自動(dòng)飲料售貨機(jī)上購買飲料一樣:購買者只需選擇所需飲料,投入硬幣(或紙幣)蹬刷,自主飲料售貨機(jī)就會(huì)彈出相應(yīng)的商品瓢捉。
計(jì)算機(jī)(購買者)帶著請求頭和消息體(硬幣和所需飲料)向服務(wù)器(自助飲料售貨機(jī))發(fā)起一次Request
請求(購買),相應(yīng)的服務(wù)器(自助飲料售貨機(jī))會(huì)返回本計(jì)算機(jī)相應(yīng)的HTML文件作為Response
(相應(yīng)的商品)
這里是一個(gè)GET請求办成。
對于學(xué)習(xí)爬蟲技術(shù)泡态,讀者只需要知道最基本的網(wǎng)絡(luò)連接原理即可。計(jì)算機(jī)一次Request請求和服務(wù)器端的Response回應(yīng)诈火,即實(shí)現(xiàn)了網(wǎng)絡(luò)連接兽赁。計(jì)算機(jī)Request請求帶著的請求頭和消息體是什么以及網(wǎng)絡(luò)更底層的東西,不是本文介紹的范圍冷守。
2.爬蟲原理
了解網(wǎng)絡(luò)連接的基本原理后刀崖,爬蟲原理就好理解了。網(wǎng)絡(luò)連接需要計(jì)算機(jī)一次Request請求和服務(wù)器端的Response回應(yīng)拍摇。爬蟲也是需要做兩件事:
①模擬計(jì)算機(jī)對服務(wù)器發(fā)起Request請求亮钦。
②接收服務(wù)器端的Response內(nèi)容并解析、提取所需的信息充活。
但互聯(lián)網(wǎng)網(wǎng)頁錯(cuò)綜復(fù)雜蜂莉,一次的請求和回應(yīng)不能夠批量獲取網(wǎng)頁的數(shù)據(jù),這時(shí)就需要設(shè)計(jì)爬蟲的流程混卵,主要用到的兩種爬蟲所需的流程映穗,即多頁面和跨頁面爬蟲流程。
多頁面爬蟲流程
有的網(wǎng)頁存在多頁的情況幕随,每頁的網(wǎng)頁結(jié)構(gòu)都相同或類似蚁滋,這種類型的網(wǎng)頁爬蟲流程為:
- 手動(dòng)翻頁并觀察各網(wǎng)頁的URL構(gòu)成特點(diǎn),構(gòu)造出所有頁面的URL存入列表中赘淮。
- 根據(jù)URL列表依次循環(huán)取出URL
- 定義爬蟲函數(shù)
- 循環(huán)調(diào)用爬蟲函數(shù)辕录,存儲(chǔ)數(shù)據(jù)。
- 循環(huán)完畢梢卸,結(jié)束爬蟲程序走诞。
跨頁面爬蟲流程
列表頁和詳細(xì)頁
這種跨頁面的爬蟲程序流程為:
- 定義爬取函數(shù)爬取列表頁的所有專題的URL
- 將專題URL存入列表中(種子URL)
- 定義爬取詳細(xì)頁數(shù)據(jù)函數(shù)
- 進(jìn)入專題詳細(xì)頁面爬取詳細(xì)頁數(shù)據(jù)
- 存儲(chǔ)數(shù)據(jù),循環(huán)完畢蛤高,結(jié)束爬蟲程序
網(wǎng)頁構(gòu)造
通過Chrome瀏覽器的使用簡單介紹網(wǎng)頁的構(gòu)成蚣旱。
網(wǎng)頁構(gòu)造
現(xiàn)在打開任意一個(gè)網(wǎng)頁(http://bj.xiaozhu.com/),按F12
碑幅,可以看到網(wǎng)頁的代碼:
現(xiàn)在來分析上圖,圖中左半部分為HTML文件姻锁,下半部分為CSS樣式枕赵,用<script></script>
標(biāo)簽的是JavaScript代碼。用戶瀏覽的網(wǎng)頁就是瀏覽器渲染后的結(jié)果位隶,瀏覽器就像翻譯官拷窜,把HTML、CSS和JavaScript代碼進(jìn)行翻譯后得到用戶使用的網(wǎng)頁界面涧黄。如果把網(wǎng)頁比喻成房子的話篮昧,那么HTML
為房子的框架和格局(幾室?guī)讖d),CSS
就是房子的樣式(地板笋妥、房漆)懊昨,JavaScript
就是房子中的電器。
3.查詢網(wǎng)頁信息
打開網(wǎng)頁(http://bj.xiaozhu.com/),右擊網(wǎng)頁空白處春宣,從彈出的快捷菜單中選擇“查看網(wǎng)頁源代碼”命令酵颁,即可查看該網(wǎng)頁的源代碼。
通過在指定元素上右擊月帝,然后選擇快捷菜單中的“檢查”命令躏惋,即可查看該元素在網(wǎng)頁源代碼中的具體位置。例如嚷辅,查看網(wǎng)頁(http://bj.xiaozhu.com/)中第一個(gè)租房的房價(jià)信息簿姨,如圖:
把鼠標(biāo)光標(biāo)移至價(jià)格元素位置,右擊簸搞,從彈出的快捷菜單中選擇“檢查”命令扁位,即可查看鈣元素在網(wǎng)頁源代碼中的具體位置,如下圖: