1. 程式人生 > >一.python 反爬蟲

一.python 反爬蟲

一.爬蟲比例:


二.爬蟲頭資訊

瀏覽器header資訊:
Accept 瀏覽器可接受的MIME型別 ,設定某種副檔名的檔案,瀏覽器會自動使用指定應用程式來開啟
Accept-Charset 瀏覽器支援的字元編碼 
Accept-Encoding 瀏覽器知道如何解碼的資料編碼型別(如 gzip)。Servlets 可以預先檢查瀏覽器是否支援gzip並可以對支援gzip的瀏覽器返回gzipped的Html頁面,並設定Content-Encoding迴應頭(response header)來指出傳送的內容是已經gzipped的。在大多數情況下,這樣做可以加快網頁下載的速度。 
Accept-Language 瀏覽器指定的語言,當Server支援多語種時起作用。 
Authorization 認證資訊,一般是對伺服器發出的WWW-Authenticate頭的迴應。 
Connection 是否使用持續連線。假如servlet發現這個欄位的值是Keep-Alive,或者由發出請求的命令列發現瀏覽器支援 HTTP 1.1 (持續連線是它的預設選項),使用持續連線可以使保護很多小檔案的頁面的下載時間減少。 
Content-Length (使用POST方法提交時,傳遞資料的位元組數) 
Cookie (很重要的一個Header,用來進行和Cookie有關的操作,具體的資訊將在後面的教程中介紹) 
Host (主機和埠) 
Referer (URL) 
User-Agent (客戶端的型別,一般用來區分不同的瀏覽器) 

三.爬蟲代理

代理ip
代理(英語:Proxy),也稱網路代理,是一種特殊的網路服務,允許一個網路終端(一般為客戶端)通過這個服務與另一個網路終端(一般為伺服器)進行非直接的連線。一些閘道器、路由器等網路裝置具備網路代理功能。一般認為代理服務有利於保障網路終端的隱私或安全,防止攻擊。形象的說:它是網路資訊的中轉站。代理伺服器就好象一個大的Cache,這樣就能顯著提高瀏覽速度和效率。更重要的是:Proxy Server(代理伺服器)是Internet鏈路級閘道器所提供的一種重要的安全功能。
主要的功能有:
突破自身IP訪問限制,訪問國外站點。教育網、過去的169網等網路使用者可以通過代理訪問國外網站。
訪問一些單位或團體內部資源,如某大學FTP(前提是該代理地址在該資源的允許訪問範圍之內),使用教育網內地址段免費代理伺服器,就可以用於對教育網開放的各類FTP下載上傳,以及各類資料查詢共享等服務。
突破中國電信的IP封鎖:中國電信使用者有很多網站是被限制訪問的,這種限制是人為的,不同Serve對地址的封鎖是不同的。所以不能訪問時可以換一個國外的代理伺服器試試。
提高訪問速度:通常代理伺服器都設定一個較大的硬碟緩衝區,當有外界的資訊通過時,同時也將其儲存到緩衝區中,當其他使用者再訪問相同的資訊時,則直接由緩衝區中取出資訊,傳給使用者,以提高訪問速度。
隱藏真實IP:上網者也可以通過這種方法隱藏自己的IP,免受攻擊。
鑑於上述原因,代理伺服器大多被用來連線INTERNET都是獨立的大型(國際網際網路)和(區域網)。在國內,所謂中國多媒體公眾資訊網和教育網都是獨立的大型國家級區域網,是與國際網際網路隔絕的。出於各種需要,某些集團或個人在兩網之間開設了代理伺服器,如果我們知道這些代理伺服器的地址,就可以利用它到達國外網站。

四.反爬蟲

爬蟲:使用任何技術手段,批量獲取網站資訊的一種方式。關鍵在於快速批量。
反爬蟲:使用任何技術手段,阻止別人批量獲取自己網站資訊的一種方式。關鍵也在於批量。
誤傷:在反爬蟲的過程中,錯誤的將普通使用者識別為爬蟲。誤傷率高的反爬蟲策略,效果再好也不能用。
攔截:成功地阻止爬蟲訪問。這裡會有攔截率的概念。通常來說,攔截率越高的反爬蟲策略,誤傷的可能性就越高。因此需要做個權衡。
資源:機器成本與人力成本的總和。

五.戰爭