(爬蟲學習筆記5)爬蟲代理基本理解(代理的基本理解、基本原理、作用和分類)

爬蟲代理基本理解

一、概況:

​ 我們在做爬蟲時常常會遇到這種情況,最初爬蟲正常運行,但是一段時間之後會出現錯誤,比如:403 Forbidden。這時候我們再打開目標網頁就會看到 “您的 IP 訪問頻率太高” 這樣的提示。出現這種情況的原因是網站採取了一些反爬蟲措施。比如:服務器會檢測某個 IP 在單位時間內的請求次數,如果超過了這個閾值,就會直接拒絕服務,返回一些錯誤信息,這種情況可以稱爲 “封 IP”。

​ 如果服務器會檢測某個 IP 單位時間的請求次數,那麼藉助某種方式來僞裝我們的 IP,讓服務器識別不出來是由我們本機發出的,不就可以成功防止 IP 被封了嗎。一種有效的方法就是 使用代理。

二、基本原理:

​ 代理指的是代理服務器。我們在正常請求一個網站時,是由我們的本機發送了請求給 Web 服務器,Web 服務器再把響應傳回給我們的本機。如果設置了代理服務器,實際上就是在本機和服務器之間搭建了一箇中轉站,此時本機不是直接向 Web服務器 發送請求,而是向 代理服務器 發送請求,請求再由 代理服務器 發送給 Web服務器 ,接着 Web服務器 再將響應傳回 代理服務器,代理服務器 再將響應傳給我們本機。這樣我們可以正常訪問網頁,但是這個過程中 Web服務器 識別出來的真實 IP 就不再是我們的本機 IP ,我們也就成功的僞裝了 IP,這就是代理的基本原理。

三、代理的作用:

  1. 突破自身 IP 訪問限制,訪問一些平時不能訪問的站點;
  2. 訪問一些單位或團體內部資源:比如使用教育網內地址段免費代理服務器,就可以用於對教育網開放的各類 FTP 下載上傳,以及各類資料查詢共享等服務;
  3. 提高訪問速度:通常代理服務器都設置一個比較大的硬盤緩衝區,當有外界的信息通過時,同時也將其保存到緩衝區中,當其他用戶再訪問相同的信息時,則直接由緩衝區中取出信息,傳給用戶,以提高訪問速度;
  4. 隱藏真實 IP:上網者也可以通過這種方式隱藏自己的 IP,免受攻擊,對爬蟲來說,我們使用代理就是爲了隱藏自己的 IP,防止自身 IP 被封鎖。

四、代理分類:

代理分類時,既可以根據協議區分,也可以根據其匿名程度區分。

1、根據協議區分:

  • FTP 代理服務器:
    主要用於訪問 FTP 服務器,一般有長傳、下載以及緩存功能,端口一般爲 21、2121 等;

  • HTTP 代理服務器:
    主要用於訪問網頁,一般有內容過濾和緩存功能,端口一般爲 80、8080、3128 等;

  • SSL / TLS 代理:
    主要用於訪問加密網站,一般有 SSL 或 TLS 加密功能(最高支持 128 位加密強度),端口一般爲 443;

  • RTSP 代理:
    主要用於訪問 Real 流媒體服務器,一般有緩存功能,端口一般爲 554;

  • Telnet代理:
    主要用於訪問 telnet 遠程控制(黑客入侵計算機時常用於隱藏身份),端口一般爲 23;

  • POP3 / SMTP 代理:
    主要用於 POP3 / SMTP 方式收發郵件,一般有緩存功能,端口一般爲 110 / 25;

  • SOCKS 代理:
    只是單純傳遞數據包,不關係具體協議和用法,所以速度快很多,一般有緩存功能,端口一般爲 1080。其中 SOCKS 代理協議又分爲 SOCKS4 和 SOCKS5,前者只支持 TCP,而後者支持 TCP 和 UDP,還支持各種身份驗證機制、服務器端域名解析等。簡單說 SOCKS5 能做到的 SOCKS4 不一定能做到,但是 SOCKS4 能做到的 SOCKS5 一定能做到。

2、根據匿名程度區分

  • 高度匿名代理:
    會將數據包原封不動的轉發,在服務端看來就好象真的是一個普通客戶端再訪問,而記錄的 IP 是代理服務器的 IP。

  • 普通匿名代理:
    會在數據包上做一些改動,服務端上有可能發現這是代理服務器,也有一定機率追查到客戶端的真實 IP。代理服務器通常會加入的 HTTP 頭有 HTTP_VIA 和 HTTP_X_FORWARDED_FOR。

  • 透明代理:
    不但改動了數據包,還會告服務器客戶端的真實 IP。這種代理除了能用緩存技術提高瀏覽器速度,能用內容過濾提高安全性之外,並無其他顯著作用,最常見的例子是內網中的硬件防火牆。

  • 間諜代理:
    指組織或個人創建的用以記錄用戶傳輸的數據,然後進行研究、監控等目的的代理服務器。

五、常見代理設置:

  • 使用網上的免費代理:
    最好使用高匿代理,另外可用的代理不多,需要在使用前篩選一下可用代理,也可以進一步維護一個代理池。

  • 使用付費代理服務:
    互聯網上存在許多代理商,可以付費使用,質量比免費代理好很多。

  • ADSL 撥號:
    撥一次號換一次 IP,穩定性高,也是一種比較有效的解決方案。

所有內容全部引自《python3 網絡爬蟲開發實戰(人民郵電出版社)》,此筆記僅用於學習交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章