本篇內(nèi)容主要講解“Python爬蟲所需要的爬蟲代理ip是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Python爬蟲所需要的爬蟲代理ip是什么”吧!
1 代理類型
代理IP一共可以分成4種類型。前面提到過的透明代理IP,匿名代理IP,高匿名代理IP,還有一種就是混淆代理IP。最基礎(chǔ)的安全程度來說呢,他們的排列順序應(yīng)該是這個(gè)樣子的高匿 > 混淆 > 匿名 > 透明。
2 代理原理
代理類型主要取決于代理服務(wù)器端的配置。不同配置會(huì)形成不同的代理類型。在配置中,這三個(gè)變量REMOTE_ADDR,HTTP_VIA,HTTP_X_FORWARDED_FOR 是決定性因素。
REMOTE_ADDR
REMOTE_ADDR 表示客戶端的 IP,但是它的值不是由客戶端提供的,而是服務(wù)器根據(jù)客戶端的 IP 指定的。
如果使用瀏覽器直接訪問某個(gè)網(wǎng)站,那么網(wǎng)站的 web 服務(wù)器(Nginx、Apache等)就會(huì)把 REMOTE_ADDR 設(shè)為客戶端的 IP 地址。
如果我們給瀏覽器設(shè)置代理,我們訪問目標(biāo)網(wǎng)站的請求會(huì)先經(jīng)過代理服務(wù)器,然后由代理服務(wù)器將請求轉(zhuǎn)化到目標(biāo)網(wǎng)站。那么網(wǎng)站的 web 代理服務(wù)器就會(huì)把 REMOTE_ADDR 設(shè)為代理服務(wù)器的 IP。
X-Forwarded-For(XFF)
X-Forwarded-For 是一個(gè) HTTP 擴(kuò)展頭部,用來表示 HTTP 請求端真實(shí) IP。當(dāng)客戶端使用了代理時(shí),web 代理服務(wù)器就不知道客戶端的真實(shí) IP 地址。為了避免這個(gè)情況,代理服務(wù)器通常會(huì)增加一個(gè) 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 是可以有多層代理的。
如果一個(gè) HTTP 請求到達(dá)服務(wù)器之前,經(jīng)過了三個(gè)代理 Proxy1、Proxy2、Proxy3,IP 分別為 IP1、IP2、IP3,用戶真實(shí) IP 為 IP0,那么按照 XFF 標(biāo)準(zhǔn),服務(wù)端最終會(huì)收到以下信息:
X-Forwarded-For: IP0, IP1, IP2
Proxy3 直連服務(wù)器,它會(huì)給 XFF 追加 IP2,表示它是在幫 Proxy2 轉(zhuǎn)發(fā)請求。列表中并沒有 IP3,IP3 可以在服務(wù)端通過 Remote Address 字段獲得。我們知道 HTTP 連接基于 TCP 連接,HTTP 協(xié)議中沒有 IP 的概念,Remote Address 來自 TCP 連接,表示與服務(wù)端建立 TCP 連接的設(shè)備 IP,在這個(gè)例子里就是 IP3。
HTTP_VIA
via 是 HTTP 協(xié)議里面的一個(gè)header,記錄了一次 HTTP 請求所經(jīng)過的代理和網(wǎng)關(guān),經(jīng)過1個(gè)代理服務(wù)器,就添加一個(gè)代理服務(wù)器的信息,經(jīng)過2個(gè)就添加2個(gè)。
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)無法知道客戶端真實(shí) IP 地址。
混淆代理(Distorting Proxy)
代理服務(wù)器的配置如下:
REMOTE_ADDR = Proxy IP HTTP_VIA = Proxy IP HTTP_X_FORWARDED_FOR = Random IP address
與匿名代理的原理相似,但是會(huì)偽裝得更逼真。如果客戶端使用了混淆代理,服務(wù)器還是能知道客戶端在使用代理,但是會(huì)得到一個(gè)假的客戶端 IP 地址。
高匿代理(Elite Proxy 或 High Anonymity Proxy)
代理服務(wù)器的配置如下:
REMOTE_ADDR = Proxy IP HTTP_VIA = not determined HTTP_X_FORWARDED_FOR = not determined
高匿代理既能讓服務(wù)器不清楚客戶端是否在使用代理,也能保證服務(wù)器獲取不到客戶端的真實(shí) IP 地址。
4 代理的選擇
普通的匿名代理IP能隱藏客戶機(jī)的真是IP,但是也會(huì)改變我們的請求信息,服務(wù)器端有可能會(huì)認(rèn)為我們使用了代理。不過使用此種代理時(shí),雖然被訪問的網(wǎng)站不能知道客戶端的 IP 地址,但仍然可以知道你在使用代理,當(dāng)然某些能夠偵測 IP 的網(wǎng)頁仍然可以查到客戶端的 IP。
而高度匿名代理不改變客戶機(jī)的請求,這樣在服務(wù)器看來就像有個(gè)真正的客戶瀏覽器在訪問它,這時(shí)客戶的真實(shí)IP是隱藏的,服務(wù)器端不會(huì)認(rèn)為我們使用了代理。
因此,爬蟲程序需要使用到爬蟲代理ip 時(shí),盡量選擇普通匿名代理和高匿名代理。另外,如果要保證數(shù)據(jù)不被代理服務(wù)器知道,推薦使用 HTTPS 協(xié)議的代理。
到此,相信大家對“Python爬蟲所需要的爬蟲代理ip是什么”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
標(biāo)題名稱:Python爬蟲所需要的爬蟲代理ip是什么-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://sd-ha.com/article14/jcjge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、網(wǎng)站建設(shè)、企業(yè)建站、微信公眾號、域名注冊、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容