日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

當(dāng)我們對某些網(wǎng)站進(jìn)行爬去的時候,我們經(jīng)常會換IP來避免爬蟲程序被封鎖。代理ip地址如何獲取?其實也是一個比較簡單的操作,目前網(wǎng)絡(luò)上有很多IP代理商,例如西刺,芝麻,犀牛等等。這些代理商一般都會提供透明代理,匿名代理,高匿代理。那么這幾種代理的區(qū)別是什么?我們該如何選擇呢?本文的主要內(nèi)容是講解各種代理 IP 背后的原理。

1 代理類型

代理IP一共可以分成4種類型。前面提到過的透明代理IP,匿名代理IP,高匿名代理IP,還有一種就是混淆代理IP。最基礎(chǔ)的安全程度來說呢,他們的排列順序應(yīng)該是這個樣子的高匿 > 混淆 > 匿名 > 透明。

Python爬蟲:爬蟲所需要的爬蟲代理ip是什么?

 

2 代理原理

代理類型主要取決于代理服務(wù)器端的配置。不同配置會形成不同的代理類型。在配置中,這三個變量REMOTE_ADDR,HTTP_VIA,HTTP_X_FORWARDED_FOR 是決定性因素。

REMOTE_ADDR

REMOTE_ADDR 表示客戶端的 IP,但是它的值不是由客戶端提供的,而是服務(wù)器根據(jù)客戶端的 IP 指定的。

如果使用瀏覽器直接訪問某個網(wǎng)站,那么網(wǎng)站的 web 服務(wù)器(Nginx、Apache等)就會把 REMOTE_ADDR 設(shè)為客戶端的 IP 地址。

如果我們給瀏覽器設(shè)置代理,我們訪問目標(biāo)網(wǎng)站的請求會先經(jīng)過代理服務(wù)器,然后由代理服務(wù)器將請求轉(zhuǎn)化到目標(biāo)網(wǎng)站。那么網(wǎng)站的 web 代理服務(wù)器就會把 REMOTE_ADDR 設(shè)為代理服務(wù)器的 IP。

X-Forwarded-For(XFF)

X-Forwarded-For 是一個 HTTP 擴(kuò)展頭部,用來表示 HTTP 請求端真實 IP。當(dāng)客戶端使用了代理時,web 代理服務(wù)器就不知道客戶端的真實 IP 地址。為了避免這個情況,代理服務(wù)器通常會增加一個 X-Forwarded-For 的頭信息,把客戶端的 IP 添加到頭信息里面。

X-Forwarded-For 請求頭格式如下:

X-Forwarded-For: client, proxy1, proxy2

client 表示客戶端的 IP 地址;proxy1 是離服務(wù)端最遠(yuǎn)的設(shè)備 IP; proxy2 是次級代理設(shè)備的 IP;從格式中,可以看出從 client 到 server 是可以有多層代理的。

如果一個 HTTP 請求到達(dá)服務(wù)器之前,經(jīng)過了三個代理 Proxy1、Proxy2、Proxy3,IP 分別為 IP1、IP2、IP3,用戶真實 IP 為 IP0,那么按照 XFF 標(biāo)準(zhǔn),服務(wù)端最終會收到以下信息:

X-Forwarded-For: IP0, IP1, IP2

Proxy3 直連服務(wù)器,它會給 XFF 追加 IP2,表示它是在幫 Proxy2 轉(zhuǎn)發(fā)請求。列表中并沒有 IP3,IP3 可以在服務(wù)端通過 Remote Address 字段獲得。我們知道 HTTP 連接基于 TCP 連接,HTTP 協(xié)議中沒有 IP 的概念,Remote Address 來自 TCP 連接,表示與服務(wù)端建立 TCP 連接的設(shè)備 IP,在這個例子里就是 IP3。

HTTP_VIA

via 是 HTTP 協(xié)議里面的一個header,記錄了一次 HTTP 請求所經(jīng)過的代理和網(wǎng)關(guān),經(jīng)過1個代理服務(wù)器,就添加一個代理服務(wù)器的信息,經(jīng)過2個就添加2個。

3 代理類型區(qū)別

透明代理(Transparent Proxy)

代理服務(wù)器的配置如下:

REMOTE_ADDR = Proxy IP
HTTP_VIA = Proxy IP
HTTP_X_FORWARDED_FOR = Your IP

透明代理雖然可以直接“隱藏”客戶端的 IP 地址,但是還是可以從HTTP_X_FORWARDED_FOR來查到客戶端的 IP 地址。

匿名代理(Anonymous Proxy)

代理服務(wù)器的配置如下:

REMOTE_ADDR = proxy IP
HTTP_VIA = proxy IP
HTTP_X_FORWARDED_FOR = proxy IP

匿名代理能提供隱藏客戶端 IP 地址的功能。使用匿名代理,服務(wù)器能知道客戶端使用用了代理,當(dāng)無法知道客戶端真實 IP 地址。

混淆代理(Distorting Proxy)

代理服務(wù)器的配置如下:

REMOTE_ADDR = Proxy IP
HTTP_VIA = Proxy IP
HTTP_X_FORWARDED_FOR = Random IP address

與匿名代理的原理相似,但是會偽裝得更逼真。如果客戶端使用了混淆代理,服務(wù)器還是能知道客戶端在使用代理,但是會得到一個假的客戶端 IP 地址。

高匿代理(Elite Proxy 或 High Anonymity Proxy)

代理服務(wù)器的配置如下:

REMOTE_ADDR = Proxy IP
HTTP_VIA = not determined
HTTP_X_FORWARDED_FOR = not determined

高匿代理既能讓服務(wù)器不清楚客戶端是否在使用代理,也能保證服務(wù)器獲取不到客戶端的真實 IP 地址。

4 代理的選擇

普通的匿名代理IP能隱藏客戶機(jī)的真是IP,但是也會改變我們的請求信息,服務(wù)器端有可能會認(rèn)為我們使用了代理。不過使用此種代理時,雖然被訪問的網(wǎng)站不能知道客戶端的 IP 地址,但仍然可以知道你在使用代理,當(dāng)然某些能夠偵測 IP 的網(wǎng)頁仍然可以查到客戶端的 IP。

而高度匿名代理不改變客戶機(jī)的請求,這樣在服務(wù)器看來就像有個真正的客戶瀏覽器在訪問它,這時客戶的真實IP是隱藏的,服務(wù)器端不會認(rèn)為我們使用了代理。

因此,爬蟲程序需要使用到爬蟲代理ip 時,盡量選擇普通匿名代理和高匿名代理。另外,如果要保證數(shù)據(jù)不被代理服務(wù)器知道,推薦使用 HTTPS 協(xié)議的代理。

分享到:
標(biāo)簽:爬蟲 Python
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定