天天看點

資料采集爬蟲ip代理基本原理

我們在做爬蟲的過程中經常會遇到這樣的情況,最初爬蟲正常運作,正常抓取資料,一切看起來都是那麼正常,然而一杯茶的功夫可能就會出現錯誤,比如403 Forbidden。

資料采集爬蟲ip代理基本原理

這時候打開網頁一看,可能會看到“您的IP通路頻率太高”這樣的提示。出現這種現象的原因是網站采取了一些反爬蟲措施。出現這種情況有效的解決方式就是使用代理IP

比如,伺服器會檢測某個IP在機關時間内的請求次數,如果超過了這個門檻值,就會直接拒絕服務,傳回一些錯誤資訊,這種情況可以稱為封IP。

既然伺服器檢測的是某個IP機關時間的請求次數,那麼借助某種方式來僞裝我們的IP,讓伺服器識别不出是由我們本機發起的請求,不就可以成功防止封IP了嗎?

一種有效的方式就是使用ip代理,後面會詳細說明ip代理的用法。在這之前,需要先了解下代理的基本原理,它是怎樣實作IP僞裝的呢?

基本原理

代理實際上指的就是代理伺服器,英文叫作proxy server,它的功能是代理網絡使用者去取得網絡資訊。

形象地說,它是網絡資訊的中轉站。

在我們正常請求一個網站時,是發送了請求給Web伺服器,Web伺服器把響應傳回給我們。

如果設定了代理伺服器,實際上就是在本機和伺服器之間搭建了一個橋,此時本機不是直接向Web伺服器發起請求,而是向代理伺服器送出請求,請求會發送給代理伺服器,然後由代理伺服器再發送給Web服務

器,接着由代理伺服器再把Web伺服器傳回的響應轉發給本機。

這樣我們同樣可以正常通路網頁,但這個過程中Web伺服器識别出的真實IP就不再是我們本機的IP了,就成功實作了IP僞裝,這就是代理的基本原理。

資料采集爬蟲ip代理基本原理

代理的作用

那麼,代理有什麼作用呢?我們可以簡單列舉如下。

突破自身IP通路限制,通路一些平時不能通路的站點。

通路一些機關或團體内部資源:比如使用教育網内位址段免費代理伺服器,就可以用于對教育網開放的各類FTP下載下傳上傳,以及各類資料查詢共享等服務。

提高通路速度:通常代理伺服器都設定一個較大的硬碟緩沖區,當有外界的資訊通過時,同時也将其儲存到緩沖區中,當其他使用者再通路相同的資訊時,則直接由緩沖區中取出資訊,傳給使用者,以提高通路速度。 隐藏真實IP:上網者也可以通過這種方法隐藏自己的IP,免受攻擊。對于爬蟲來說,我們用代理就是為了隐藏自身IP,防止自身的IP被封鎖。

爬蟲代理IP 對于爬蟲來說,由于爬蟲爬取速度過快,在爬取過程中可能遇到同一個IP通路過于頻繁的問題,此時網站就會讓我們輸入驗證碼登入或者直接封鎖IP,這樣會給爬取帶來極大的不便。

使用代理隐藏真實的IP,讓伺服器誤以為是代理伺服器在請求自己。這樣在爬取過程中通過不斷更換代理,就不會被封鎖,可以達到很好的爬取效果。

4. 代理分類

代理分類時,既可以根據協定區分,也可以根據其匿名程度區分。 (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,還支援各種身份驗證機制、伺服器端域名解析等。簡單來說,SOCK4能做到的SOCKS5都可以做到,但SOCKS5能做到的SOCK4不一定能做到。

(2) 根據匿名程度

根據代理的匿名程度,代理可以分為如下類别。

高匿名代理:會将資料包原封不動地轉發,在服務端看來就好像真的是一個普通用戶端在通路,而記錄的IP是代理伺服器的IP。

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

透明代理:不但改動了資料包,還會告訴伺服器用戶端的真實IP。這種代理除了能用緩存技術提高浏覽速度,能用内容過濾提高安全性之外,并無其他顯著作用,最常見的例子是内網中的硬體防火牆。

間諜代理:指組織或個人建立的用于記錄使用者傳輸的資料,然後進行研究、監控等目的的代理伺服器。

常見代理設定

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

使用付費代理服務:網際網路上存在許多代理商,可以付費使用,品質比免費代理好很多。

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