爬蟲(chóng)工作者在試用爬蟲(chóng)進(jìn)行數(shù)據(jù)采集時(shí)經(jīng)常會(huì)遇到這樣的情況。 一開(kāi)始,爬蟲(chóng)運(yùn)行正常,數(shù)據(jù)抓取狀態(tài)也在有條不紊的進(jìn)行中。 但是,您可能無(wú)法一目了然,并且會(huì)出現(xiàn)錯(cuò)誤,例如403 Forbidden。 如果此時(shí)打開(kāi)網(wǎng)頁(yè),網(wǎng)頁(yè)會(huì)提示“您的IP訪問(wèn)頻率太高”。 出現(xiàn)這種現(xiàn)象的原因是被訪問(wèn)的網(wǎng)站采用了反爬蟲(chóng)機(jī)制。 例如,服務(wù)器會(huì)檢測(cè)一個(gè)IP在單位時(shí)間內(nèi)發(fā)出的請(qǐng)求數(shù)。 如果超過(guò)這個(gè)閾值,它會(huì)直接拒絕服務(wù)并返回一些錯(cuò)誤信息,這種情況可以稱為 IP限制。
動(dòng)態(tài)IP模擬器
那么這種情況的解決方法很簡(jiǎn)單,因?yàn)樗梢詸z測(cè)某個(gè)IP的請(qǐng)求次數(shù),所以最好用代理IP來(lái)偽裝 自己的IP地址。 一個(gè)好辦法,這樣可以防止IP被屏蔽。
然后了解代理IP的基本原理,看看代理IP是如何偽裝的。
基本原理
代理其實(shí)就是一個(gè)代理服務(wù)器,代理IP的作用是代理網(wǎng)絡(luò)客戶端獲取網(wǎng)絡(luò)信息。 打個(gè)比方,它相當(dāng)于一個(gè)網(wǎng)絡(luò)信息的中轉(zhuǎn)站。 當(dāng)我們正常請(qǐng)求一個(gè)網(wǎng)站時(shí),請(qǐng)求被發(fā)送到網(wǎng)絡(luò)服務(wù)器,網(wǎng)絡(luò)服務(wù)器將響應(yīng)返回給我們。 如果中間設(shè)置了代理服務(wù)器,它實(shí)際上是機(jī)器和訪問(wèn)的網(wǎng)站之間的橋梁。 這時(shí)候機(jī)器并沒(méi)有直接向Web服務(wù)器發(fā)起請(qǐng)求,而是向代理服務(wù)器發(fā)送請(qǐng)求,請(qǐng)求會(huì)被發(fā)送到代理服務(wù)器再由代理服務(wù)器發(fā)送給Web服務(wù)器,而 然后代理服務(wù)器將Web服務(wù)器返回的響應(yīng)轉(zhuǎn)發(fā)給機(jī)器。 這樣我們也可以正常訪問(wèn)網(wǎng)頁(yè),但是這個(gè)過(guò)程中web服務(wù)器識(shí)別的真實(shí)IP不再是我們的本地IP,成功實(shí)現(xiàn)了IP偽裝。 這就是代理的基本原理。
2。 代理的作用
說(shuō)一下 HTTP代理IP的作用
突破自己的 IP 訪問(wèn)限制,訪問(wèn)一些平時(shí)訪問(wèn)不了的網(wǎng)站。
訪問(wèn)單位或團(tuán)體的一些內(nèi)部資源:如使用教育網(wǎng)內(nèi)部地址段免費(fèi)代理服務(wù)器,可用于對(duì)教育網(wǎng)開(kāi)放的各種FTP下載和上傳,以及各種數(shù)據(jù)查詢和共享服務(wù)。
提高訪問(wèn)速度:通常代理服務(wù)器會(huì)設(shè)置更大的硬盤(pán)緩沖區(qū),當(dāng)外部信息通過(guò)時(shí),也會(huì)同時(shí)保存在緩沖區(qū)中,當(dāng)其他用戶再次訪問(wèn)相同的信息時(shí), 信息直接從緩沖區(qū)中檢索并傳遞給用戶,以提高訪問(wèn)速度。
隱藏真實(shí)IP:網(wǎng)民也可以通過(guò)這種方式隱藏自己的IP,避免被攻擊。 對(duì)于爬蟲(chóng),我們使用代理來(lái)隱藏我們的IP,防止我們的IP被屏蔽。
3。 爬蟲(chóng)代理
在爬取數(shù)據(jù)的時(shí)候,因?yàn)榕老x(chóng)速度太快,會(huì)出現(xiàn)同一個(gè)IP訪問(wèn)過(guò)于頻繁的問(wèn)題。 這時(shí)候網(wǎng)站會(huì)被驗(yàn)證或者直接屏蔽本地IP會(huì)給數(shù)據(jù)抓取帶來(lái)很大的不便。
使用代理隱藏真實(shí)IP,使服務(wù)器誤認(rèn)為代理服務(wù)器在請(qǐng)求自己。 這樣通過(guò)在爬蟲(chóng)過(guò)程中不斷改變爬蟲(chóng)代理IP,就不會(huì)被屏蔽,可以達(dá)到很好的爬蟲(chóng)效果。
4。 代理分類
代理分類時(shí),可根據(jù)約定或匿名程度進(jìn)行區(qū)分。
(1)根據(jù)協(xié)議
根據(jù)代理協(xié)議,代理可分為以下幾類。
FTP代理服務(wù)器:主要用于訪問(wèn)FTP服務(wù)器,一般有上傳、下載和緩存功能,端口一般為21、2121等。
HTTP代理服務(wù)器:主要用于訪問(wèn)web 頁(yè)面,一般有內(nèi)容過(guò)濾和緩存功能,端口一般為80、8080、3128等。
SSL/TLS代理:主要用于訪問(wèn)加密網(wǎng)站,通常帶有SSL或TLS加密功能(向上 到128位加密強(qiáng)度),端口一般為443。
RTSP代理:主要用于訪問(wèn)Real流媒體服務(wù)器,一般有緩存功能,端口一般為554。
[ h] Telnet代理:主要用于telnet遠(yuǎn)程控制(黑客入侵電腦時(shí)常使用隱藏身份),端口一般為23。
POP3/SMTP代理:主要用于發(fā)送和接收 POP3/SMTP 模式的電子郵件,普遍可用緩存功能,端口一般為110/25。
SOCKS代理:只傳輸數(shù)據(jù)包,不關(guān)心具體協(xié)議和用途,所以速度快很多,一般帶緩存功能,端口一般為1080。SOCKS代理協(xié)議劃分 進(jìn)入 SOCKS4 和 SOCKS5。 前者只支持TCP,后者支持TCP和UDP。 它還支持各種認(rèn)證機(jī)制和服務(wù)器端域名解析。 簡(jiǎn)單的說(shuō),SOCK4能做的SOCKS5能做,但SOCKS5能做的SOCK4未必。
(2) 根據(jù)匿名程度
根據(jù)代理的匿名程度,代理可以分為以下幾類。
高度匿名代理:數(shù)據(jù)包會(huì)原封不動(dòng)地轉(zhuǎn)發(fā),從服務(wù)器的角度來(lái)看,看起來(lái)真的是一個(gè)普通的客戶端在訪問(wèn),記錄的IP就是代理服務(wù)器的IP。
普通匿名代理:數(shù)據(jù)包會(huì)有一些變化。 服務(wù)器可能會(huì)發(fā)現(xiàn)這是一個(gè)代理服務(wù)器,有一定幾率可以追蹤到客戶端的真實(shí)IP。 代理服務(wù)器通常添加的 HTTP 標(biāo)頭是 HTTP_VIA 和 HTTP_X_FORWARDED_FOR。
透明代理:不僅改變數(shù)據(jù)包,還告訴服務(wù)器客戶端的真實(shí)IP。 這種代理除了可以利用緩存技術(shù)提高瀏覽速度和內(nèi)容過(guò)濾提高安全性外,沒(méi)有其他顯著的效果。 最常見(jiàn)的示例是 Intranet 中的硬件防火墻。
間諜代理:指由組織或個(gè)人創(chuàng)建的一種代理服務(wù)器,用于記錄用戶傳輸?shù)臄?shù)據(jù),進(jìn)而進(jìn)行研究、監(jiān)控等目的。
5。 常用代理設(shè)置
使用網(wǎng)上免費(fèi)代理:最好使用高度隱蔽的代理IP。 此外,可用的代理并不多。 您需要在使用前過(guò)濾可用的代理,或者您可以進(jìn)一步維護(hù)一個(gè)代理池。
使用付費(fèi)代理服務(wù):網(wǎng)上有很多代理,可以收費(fèi)使用,質(zhì)量比免費(fèi)代理好很多。
ADSL撥號(hào):撥一個(gè)號(hào)碼換一個(gè)IP,穩(wěn)定性高,也是一種更有效的解決方案。
IP模擬器