03 python爬蟲基本原理

2022-09-13 06:57:06 字數 2413 閱讀 1892

爬蟲是 模擬使用者在瀏覽器或者某個應用上的操作,把操作的過程、實現自動化的程式

當我們在瀏覽器中輸入乙個url後回車,後台會發生什麼?比如說你輸入

簡單來說這段過程發生了以下四個步驟

網路爬蟲本質

本質就是瀏覽器http請求

瀏覽器和網路爬蟲是兩種不同的網路客戶端,都以相同的方式來獲取網頁:

網路爬蟲要做的,簡單來說,就是實現瀏覽器的功能。通過指定url,直接返回給使用者所需要的資料,而不需要一步步人工去操縱瀏覽器獲取。

http協議(hypertext transfer protocol,超文字傳輸協議)目的是為了提供一種發布和接收html(hypertext markup language)頁面的方法。

http是基於tcp協議之上的。在tcp/ip協議參考模型的各層對應的協議如下圖,其中http是應用層的協議。預設http的埠號為80,https的埠號為443。

一次http操作稱為乙個事務,其工作整個過程如下:

1 ) 、位址解析,

如用客戶端瀏覽器請求這個頁面:

從中分解出協議名、主機名、埠、物件路徑等部分,對於我們的這個位址,解析得到的結果如下:協議名:http 主機名:localhost.com 埠:8080 物件路徑:/index.htm

在這一步,需要網域名稱系統dns解析網域名稱localhost.com,得主機的ip位址。

2)、封裝http請求資料報

把以上部分結合本機自己的資訊,封裝成乙個http請求資料報

3)封裝成tcp包,建立tcp連線(tcp的三次握手)

在http工作開始之前,客戶機(web瀏覽器)首先要通過網路與伺服器建立連線,該連線是通過tcp來完成的,該協議與ip協議共同構建internet,即著名的tcp/ip協議族,因此internet又被稱作是tcp/ip網路。

http是比tcp更高層次的應用層協議,根據規則,只有低層協議建立之後才能,才能進行更層協議的連線,因此,首先要建立tcp連線,一般tcp連線的埠號是80。這裡是8080埠

4)客戶機傳送請求命令

建立連線後,客戶機傳送乙個請求給伺服器,請求方式的格式為:統一資源識別符號(url)、協議版本號,後邊是mime資訊包括請求修飾符、客戶機資訊和可內容。

5)伺服器響應

伺服器接到請求後,給予相應的響應資訊,其格式為乙個狀態行,包括資訊的協議版本號、乙個成功或錯誤的**,後邊是mime資訊包括伺服器資訊、實體資訊和可能的內容。

實體訊息是伺服器向瀏覽器傳送頭資訊後,它會傳送乙個空白行來表示頭資訊的傳送到此為結束,接著,它就以content-type應答頭資訊所描述的格式傳送使用者所請求的實際資料

6)伺服器關閉tcp連線

一般情況下,一旦web伺服器向瀏覽器傳送了請求資料,它就要關閉tcp連線,然後如果瀏覽器或者伺服器在其頭資訊加入了這行**

connection:keep-alive

tcp連線在傳送後將仍然保持開啟狀態,於是,瀏覽器可以繼續通過相同的連線傳送請求。保持連線節省了為每個請求建立新連線所需的時間,還節約了網路頻寬。

https(全稱:hypertext transfer protocol over secure socket layer),是以安全為目標的http通道,簡單講是http的安全版。即http下加入ssl層,https的安全基礎是ssl。其所用的埠號是443。

有兩種基本的加解密演算法型別:

1)對稱加密(symmetrcic encryption):金鑰只有乙個,加密解密為同乙個密碼,且加解密速度快,典型的對稱加密演算法有des、aes,rc5,3des等;

對稱加密主要問題是共享秘鑰,除你的計算機(客戶端)知道另外一台計算機(伺服器)的私鑰秘鑰,否則無法對通訊流進行加密解密。解決這個問題的方案非對稱秘鑰。

2)非對稱加密:使用兩個秘鑰:公共秘鑰和私有秘鑰。私有秘鑰由一方密碼儲存(一般是伺服器儲存),另一方任何人都可以獲得公共秘鑰。

這種金鑰成對出現(且根據公鑰無法推知私鑰,根據私鑰也無法推知公鑰),加密解密使用不同金鑰(公鑰加密需要私鑰解密,私鑰加密需要公鑰解密),相對對稱加密速度較慢,典型的非對稱加密演算法有rsa、dsa等。

爬蟲基本原理

一 爬蟲是什麼?爬蟲要做的是什麼?使用者獲取網路資料的方式是 爬蟲程式要做的就是 區別在於 我們的爬蟲程式只提取網頁 中對我們有用的資料 為什麼要做爬蟲 爬蟲的價值 網際網路中最有價值的便是資料,比如天貓 的商品資訊,鏈家網的租房資訊,雪球網的 投資資訊等等,這些資料都代表了各個行業的真金 可以說,...

爬蟲基本原理

三種爬蟲方式 通用爬蟲 抓取系統重要組成部分,獲取的是整張頁面資料 聚焦爬蟲 建立在通用爬蟲之上,抓取頁面指定的區域性內容 增量式爬蟲 檢測 資料更新的情況,只抓取更新出來的資料 https協議 安全的超文字傳輸協議 證書秘鑰加密 請求頭 響應頭 加密方式 傳送請求 獲取響應內容 解析內容 儲存資料...

爬蟲基本原理

一 爬蟲介紹 本質,就是想 傳送http請求,拿回一些頁面 json格式資料 request 處理資料,解析出有用的東西 re,bs4 儲存 mysql,檔案,cvs,redis,mongodb,es 分析 cookie池和 池 正向 和反向 正向 自己,反向 伺服器 爬蟲運用模組 requests...