當(dāng)自己需要數(shù)據(jù)的時候,能夠分分鐘就能獲得,是不是一件很爽的事情。為了獲得自己想要的數(shù)據(jù),我們有必要弄懂爬蟲原理。經(jīng)常用百度搜索的筒子們,有沒有想過當(dāng)你輸入百度地址時候,網(wǎng)絡(luò)那邊都發(fā)生了什么,本章講一下網(wǎng)絡(luò)連接原理和爬蟲原理。
網(wǎng)絡(luò)連接原理如下圖:

打個比方:網(wǎng)絡(luò)連接像是在自助飲料售貨機(jī)上購買飲料一樣:購買者只需選擇所需飲料,投入刷二維碼,自助飲料機(jī)就會彈出相應(yīng)的商品。如上圖,計算機(jī)(購買者)帶著請求頭和消息體(錢和所需飲料)向服務(wù)器(自助飲料售貨機(jī))發(fā)起一次request請求(購買),相應(yīng)的服務(wù)器(自助售貨機(jī))會返回計算機(jī)相應(yīng)的HTML文件作為Response(相應(yīng)的商品)。
爬蟲原理
爬蟲其實(shí)就是模仿計算機(jī):
1、模擬計算機(jī)對服務(wù)器發(fā)起Request請求
2、接受服務(wù)器端的Response內(nèi)容并解析、提取所需的信息
我們經(jīng)常遇到網(wǎng)頁請求主要分為兩種:多頁面和跨頁面。相應(yīng)的爬蟲流程也是這兩種。
1.多頁面爬蟲流程
示例圖:

QQ空間說說,58趕集等信息網(wǎng)站很多都是這個結(jié)構(gòu),每頁結(jié)構(gòu)都差不多。這種類型的網(wǎng)頁爬蟲流程為:
1、手動翻頁查看一下各網(wǎng)頁的URL構(gòu)成的特點(diǎn),構(gòu)造出所有頁面的URL存入列表中。
2、根據(jù)URL列表一次循環(huán)出URL
3、定義爬蟲函數(shù)(這個是重點(diǎn),也是難點(diǎn))
4、循環(huán)調(diào)用爬蟲函數(shù),存儲數(shù)據(jù)(根據(jù)數(shù)據(jù)形式,選擇不同數(shù)據(jù)庫)
5、循環(huán)完畢,結(jié)束爬蟲程序

跨頁面爬蟲流程
以簡書為例:列表頁和詳細(xì)頁分別如下圖


爬蟲流程如下:
1、定義爬取函數(shù)爬取列表頁的所有專題URL
2、將專題URL存入列表中(種子URL)
3、定義爬取詳細(xì)頁的數(shù)據(jù)函數(shù)
4、進(jìn)入專題詳細(xì)頁爬取詳細(xì)頁數(shù)據(jù)
5、存儲數(shù)據(jù)、循環(huán)完畢,結(jié)束爬蟲程序。如下圖
