1.定義:也叫網絡蜘蛛,網絡爬蟲就是偽裝成客戶端與服務端進行數據交互的程序。
2.分類:
1.通用爬蟲:將互聯網的網頁下載到本地,形成一個互聯網內容的鏡像備份。因此具有局限性,返回內容一樣。
2.聚焦爬蟲:面向特定主題需求的一種網絡爬蟲,與通用爬蟲區別在於聚焦爬蟲時會在頁面抓取時過濾內容,盡量蜘蛛區需求相關的內容。
3.爬蟲過程:
1.單一頁面的爬取:
url--------->發送請求,獲取響應-------------->提取數據------------->保存數據
2.多頁面爬取:
url--------->發送請求,獲取響應--------------->提取url,繼續請求
4.HTTP與HTTPS:
客戶端與服務端之間進行數據交互的傳輸協議中,大部分的網絡傳輸基於http協議。
HTTP協議:超文本傳輸協議,基於tcp/ip通信協議傳出數據。
http請求流程:一次http請求包含客戶端向服務端發送的一次請求與服務端向客戶端返回的一次響應過程。
首先根據url進行域名解析,目的是找到服務端機器,
其次發起tcp三次握手建立連接,連接建立后,發送請求,
緊接着服務端接到請求后進行響應,客戶端得到html代碼,進而解析代碼並請求html中的資源
得到資源后客戶端對頁面進行渲染並呈現給用戶。
請求方式:
get:從服務器上獲取數據
post:向服務器提交數據
delete:刪除指定頁面
head:類似於get,返回請求報頭
option:允許客戶端查看服務器的性能
http請求格式:請求行,請求頭,空行,請求數據
http響應格式:響應行(狀態行),消息報頭,空行,響應數據
http協議特點:
1.無連接:每次連接只處理一個請求,服務器處理完強求后並接收到客戶端的應答后,斷開連接。目的是節約傳輸時間,降低服務器負載。
2.無狀態:服務器對於客戶端的請求是沒有記憶的,一次請求完成后再次請求時服務器不記得客戶端。客戶端再次請求時,需要重新進行http請求。
延伸:http是無狀態的,如何區分一個用戶的連續請求?
使用會話技術:cookies和session
cookies:身份證。是服務端給客戶端發送的特殊信息,當客戶端再次請求時,服務端會驗證其cookies,以此確定客戶端身份。
session:會話,爬蟲領域中指的是,一個瀏覽窗口從打開到關閉的期間。
session實現方式:在一個session會話中,當客戶端開始訪問時,會產生一個sessionID,這個sessionID每次訪問時都會帶上,服務端收到時,會識別這個sessionID並保存與此相關的數據到服務端上。由此來判斷客戶端的狀態。
HTTPS:超文本傳輸安全協議,同樣基於tcp/ip通訊協議,並在此基礎上加上一層SSL/TLS協議,保證數據傳輸的加密性。(默認端口443)