爬蟲之爬蟲概述

2022-04-10 14:49:44 字數 3165 閱讀 7570

anaconda: 是乙個整合環境(資料分析+機器學習),提供了乙個叫做jupyter的視覺化工具(基於瀏覽器)

啟動: cmd>jupyter notebook

jupyter的基本使用:

cell分為兩種模式

什麼是爬蟲:

爬蟲的分類:

聚焦爬蟲:聚焦爬蟲是根據指定的需求抓取網路上指定的資料。例如:獲取豆瓣上電影的名稱和影評,而不是獲取整張頁面中所有的資料值。

爬蟲安全性的**

如何規避風險

第乙個反爬機制:

http協議

什麼是http協議?

http協議就是伺服器(server)和客戶端(client)之間進行資料互動(相互傳輸資料)的一種形式。我們可以將server和client進行擬人化,那麼該協議就是server和client這兩兄弟間指定的一種互動溝通方式。

http工作原理:

http協議工作於客戶端--服務端架構上。瀏覽器作為http客戶端,通過url向http服務端即web伺服器傳送請求。web伺服器根據接收到的請求後,向客戶端傳送響應資訊.

http四點注意事項:

http之url:

url,全稱是uniformresourcelocator, 中文叫統一資源定位符,是網際網路上用來標識某一處資源的位址。

http之request:

報文頭:常被叫做請求頭,請求頭中儲存的是該請求的一些主要說明(自我介紹)。伺服器據此獲取客戶端的資訊。

常見的請求頭:

accept:瀏覽器通過這個頭告訴伺服器,它所支援的資料型別

accept-charset: 瀏覽器通過這個頭告訴伺服器,它支援哪種字符集

accept-encoding:瀏覽器通過這個頭告訴伺服器,支援的壓縮格式

accept-language:瀏覽器通過這個頭告訴伺服器,它的語言環境

host:瀏覽器通過這個頭告訴伺服器,想訪問哪台主機

if-modified-since: 瀏覽器通過這個頭告訴伺服器,快取資料的時間

referer:瀏覽器通過這個頭告訴伺服器,客戶機是哪個頁面來的 防盜煉

connection:瀏覽器通過這個頭告訴伺服器,請求完後是斷開鏈結還是何持鏈結

x-requested-with: xmlhttprequest 代表通過ajax方式進行訪問

user-agent:請求載體的身份標識

報文體:常被叫做請求體,請求體中儲存的是將要傳輸/傳送給伺服器的資料資訊。

http之response:

狀態碼:以「清晰明確」的語言告訴客戶端本次請求的處理結果。

http的響應狀態碼由5段組成:

1xx 訊息,一般是告訴客戶端,請求已經收到了,正在處理,別急...

2xx 處理成功,一般表示:請求收悉、我明白你要的、請求已受理、已經處理完成等資訊.

3xx 重定向到其它地方。它讓客戶端再發起乙個請求以完成整個處理。

4xx 處理發生錯誤,責任在客戶端,如客戶端的請求乙個不存在的資源,客戶端未被授權,禁止訪問等。

5xx 處理發生錯誤,責任在服務端,如服務端丟擲異常,路由出錯,http版本不支援等。

相應頭:響應的詳情展示

常見的相應頭資訊:

相應體:根據客戶端指定的請求資訊,傳送給客戶端的指定資料

https協議

https (secure hypertext transfer protocol)安全超文字傳輸協議,https是在http上建立ssl加密層,並對傳輸資料進行加密,是http協議的安全版。

https採用的加密技術:

ssl加密技術:

ssl採用的加密技術叫做「共享秘鑰加密」,也叫作「對稱秘鑰加密」,這種加密方法是這樣的,比如客戶端向伺服器傳送一條資訊,首先客戶端會採用已知的演算法對資訊進行加密,比如md5或者base64加密,接收端對加密的資訊進行解密的時候需要用到金鑰,中間會傳遞秘鑰,(加密和解密的金鑰是同乙個),秘鑰在傳輸中間是被加密的。這種方式看起來安全,但是仍有潛在的危險,一旦被竊聽,或者資訊被挾持,就有可能破解秘鑰,而破解其中的資訊。因此「共享金鑰加密」這種方式存在安全隱患

非對稱秘鑰加密技術:

非對稱加密」使用的時候有兩把鎖,一把叫做「私有金鑰」,一把是「公開金鑰」,使用非對稱加密的加密方式的時候,伺服器首先告訴客戶端按照自己給定的公開金鑰進行加密處理,客戶端按照公開金鑰加密以後,伺服器接收到資訊再通過自己的私有金鑰進行解密,這樣做的好處就是解密的鑰匙根本就不會進行傳輸,因此也就避免了被挾持的風險。就算公開金鑰被竊聽者拿到了,它也很難進行解密,因為解密過程是對離散對數求值,這可不是輕而易舉就能做到的事。

但是非對稱秘鑰加密技術也存在如下缺點:

第乙個是:如何保證接收端向傳送端發出公開秘鑰的時候,傳送端確保收到的是預先要傳送的,而不會被挾持。只要是傳送金鑰,就有可能有被挾持的風險。

第二個是:非對稱加密的方式效率比較低,它處理起來更為複雜,通訊過程中使用就有一定的效率問題而影響通訊速度

https的證書機制:

在上面我們講了非對稱加密的缺點,其中第乙個就是公鑰很可能存在被挾持的情況,無法保證客戶端收到的公開金鑰就是伺服器發行的公開金鑰。此時就引出了公開金鑰證書機制。數字證書認證機構是客戶端與伺服器都可信賴的第三方機構。證書的具體傳播過程如下:

1:伺服器的開發者攜帶公開金鑰,向數字證書認證機構提出公開金鑰的申請,數字證書認證機構在認清申請者的身份,審核通過以後,會對開發者申請的公開金鑰做數字簽名,然後分配這個已簽名的公開金鑰,並將金鑰放在證書裡面,繫結在一起 

2:伺服器將這份數字證書傳送給客戶端,因為客戶端也認可證書機構,客戶端可以通過數字證書中的數字簽名來驗證公鑰的真偽,來確保伺服器傳過來的公開金鑰是真實的。一般情況下,證書的數字簽名是很難被偽造的,這取決於認證機構的公信力。一旦確認資訊無誤之後,客戶端就會通過公鑰對報文進行加密傳送,伺服器接收到以後用自己的私鑰進行解密。

Python爬蟲之爬蟲概述

知識點 模擬瀏覽器,傳送請求,獲取響應 網路爬蟲 又被稱為網頁蜘蛛,網路機械人 就是模擬客戶端 主要指瀏覽器 傳送網路請求,接收請求響應,一種按照一定的規則,自動地抓取網際網路資訊的程式。知識點 了解 爬蟲的概念 爬蟲在網際網路世界中有很多的作用,比如 資料採集 抓取招聘 的招聘資訊 資料分析 挖掘...

python之爬蟲概述

網路爬蟲 又被稱為網頁蜘蛛,網路機械人,在foaf社群中間,更經常的稱為網頁追逐者 是一種按照一定的規則,自動地抓取全球資訊網資訊的程式或者指令碼。另外一些不常使用的名字還有螞蟻 自動索引 模擬程式或者蠕蟲。其實通俗的講就是通過程式去獲取web頁面上自己想要的資料,也就是自動抓取資料。模擬瀏覽器開啟...

Python爬蟲高階一之爬蟲框架概述

爬蟲入門之後,我們有兩條路可以走。乙個是繼續深入學習,以及關於設計模式的一些知識,強化python相關知識,自己動手造輪子,繼續為自己的爬蟲增加分布式,多執行緒等功能擴充套件。另一條路便是學習一些優秀的框架,先把這些框架用熟,可以確保能夠應付一些基本的爬蟲任務,也就是所謂的解決溫飽問題,然後再深入學...