- 首頁|
- 網(wǎng)校|
- 焚題庫|
- APP |
-
微信公眾號(hào)
我們在做爬蟲的過程中經(jīng)常會(huì)遇到這樣的情況,最初爬蟲正常運(yùn)行,正常抓取數(shù)據(jù),一切看起來都是那么美好,然而一杯茶的功夫可能就會(huì)出現(xiàn)錯(cuò)誤,比如403 Forbidden,這時(shí)候打開網(wǎng)頁一看,可能會(huì)看到“您的IP訪問頻率太高”這樣的提示。出現(xiàn)這種現(xiàn)象的原因是網(wǎng)站采取了一些反爬蟲措施。比如,服務(wù)器會(huì)檢測某個(gè)IP在單位時(shí)間內(nèi)的請求次數(shù),如果超過了這個(gè)閾值,就會(huì)直接拒絕服務(wù),返回一些錯(cuò)誤信息,這種情況可以稱為封IP。
既然服務(wù)器檢測的是某個(gè)IP單位時(shí)間的請求次數(shù),那么借助某種方式來偽裝我們的IP,讓服務(wù)器識(shí)別不出是由我們本機(jī)發(fā)起的請求,不就可以成功防止封IP了嗎?
一種有效的方式就是使用代理,后面會(huì)詳細(xì)說明代理的用法。在這之前,需要先了解下代理的基本原理,它是怎樣實(shí)現(xiàn)IP偽裝的呢?
1. 基本原理
代理實(shí)際上指的就是代理服務(wù)器,英文叫作proxy server,它的功能是代理網(wǎng)絡(luò)用戶去取得網(wǎng)絡(luò)信息。形象地說,它是網(wǎng)絡(luò)信息的中轉(zhuǎn)站。在我們正常請求一個(gè)網(wǎng)站時(shí),是發(fā)送了請求給Web服務(wù)器,Web服務(wù)器把響應(yīng)傳回給我們。如果設(shè)置了代理服務(wù)器,實(shí)際上就是在本機(jī)和服務(wù)器之間搭建了一個(gè)橋,此時(shí)本機(jī)不是直接向Web服務(wù)器發(fā)起請求,而是向代理服務(wù)器發(fā)出請求,請求會(huì)發(fā)送給代理服務(wù)器,然后由代理服務(wù)器再發(fā)送給Web服務(wù)器,接著由代理服務(wù)器再把Web服務(wù)器返回的響應(yīng)轉(zhuǎn)發(fā)給本機(jī)。這樣我們同樣可以正常訪問網(wǎng)頁,但這個(gè)過程中Web服務(wù)器識(shí)別出的真實(shí)IP就不再是我們本機(jī)的IP了,就成功實(shí)現(xiàn)了IP偽裝,這就是代理的基本原理。
2. 代理的作用
那么,代理有什么作用呢?我們可以簡單列舉如下。
突破自身IP訪問限制,訪問一些平時(shí)不能訪問的站點(diǎn)。
訪問一些單位或團(tuán)體內(nèi)部資源:比如使用教育網(wǎng)內(nèi)地址段免費(fèi)代理服務(wù)器,就可以用于對教育網(wǎng)開放的各類FTP下載上傳,以及各類資料查詢共享等服務(wù)。
提高訪問速度:通常代理服務(wù)器都設(shè)置一個(gè)較大的硬盤緩沖區(qū),當(dāng)有外界的信息通過時(shí),同時(shí)也將其保存到緩沖區(qū)中,當(dāng)其他用戶再訪問相同的信息時(shí),則直接由緩沖區(qū)中取出信息,傳給用戶,以提高訪問速度。
隱藏真實(shí)IP:上網(wǎng)者也可以通過這種方法隱藏自己的IP,免受攻擊。對于爬蟲來說,我們用代理就是為了隱藏自身IP,防止自身的IP被封鎖。
3. 爬蟲代理
對于爬蟲來說,由于爬蟲爬取速度過快,在爬取過程中可能遇到同一個(gè)IP訪問過于頻繁的問題,此時(shí)網(wǎng)站就會(huì)讓我們輸入驗(yàn)證碼登錄或者直接封鎖IP,這樣會(huì)給爬取帶來極大的不便。
使用代理隱藏真實(shí)的IP,讓服務(wù)器誤以為是代理服務(wù)器在請求自己。這樣在爬取過程中通過不斷更換代理,就不會(huì)被封鎖,可以達(dá)到很好的爬取效果。
4. 代理分類
代理分類時(shí),既可以根據(jù)協(xié)議區(qū)分,也可以根據(jù)其匿名程度區(qū)分。
(1) 根據(jù)協(xié)議區(qū)分
根據(jù)代理的協(xié)議,代理可以分為如下類別。
FTP代理服務(wù)器:主要用于訪問FTP服務(wù)器,一般有上傳、下載以及緩存功能,端口一般為21、2121等。
HTTP代理服務(wù)器:主要用于訪問網(wǎng)頁,一般有內(nèi)容過濾和緩存功能,端口一般為80、8080、3128等。
SSL/TLS代理:主要用于訪問加密網(wǎng)站,一般有SSL或TLS加密功能(最高支持128位加密強(qiáng)度),端口一般為443。
RTSP代理:主要用于訪問Real流媒體服務(wù)器,一般有緩存功能,端口一般為554。
Telnet代理:主要用于telnet遠(yuǎn)程控制(黑客入侵計(jì)算機(jī)時(shí)常用于隱藏身份),端口一般為23。
POP3/SMTP代理:主要用于POP3/SMTP方式收發(fā)郵件,一般有緩存功能,端口一般為110/25。
SOCKS代理:只是單純傳遞數(shù)據(jù)包,不關(guān)心具體協(xié)議和用法,所以速度快很多,一般有緩存功能,端口一般為1080。SOCKS代理協(xié)議又分為SOCKS4和SOCKS5,前者只支持TCP,而后者支持TCP和UDP,還支持各種身份驗(yàn)證機(jī)制、服務(wù)器端域名解析等。簡單來說,SOCK4能做到的SOCKS5都可以做到,但SOCKS5能做到的SOCK4不一定能做到。
(2) 根據(jù)匿名程度區(qū)分
根據(jù)代理的匿名程度,代理可以分為如下類別。
高度匿名代理:會(huì)將數(shù)據(jù)包原封不動(dòng)地轉(zhuǎn)發(fā),在服務(wù)端看來就好像真的是一個(gè)普通客戶端在訪問,而記錄的IP是代理服務(wù)器的IP。
普通匿名代理:會(huì)在數(shù)據(jù)包上做一些改動(dòng),服務(wù)端上有可能發(fā)現(xiàn)這是個(gè)代理服務(wù)器,也有一定幾率追查到客戶端的真實(shí)IP。代理服務(wù)器通常會(huì)加入的HTTP頭有HTTP_VIA和HTTP_X_FORWARDED_FOR。
透明代理:不但改動(dòng)了數(shù)據(jù)包,還會(huì)告訴服務(wù)器客戶端的真實(shí)IP。這種代理除了能用緩存技術(shù)提高瀏覽速度,能用內(nèi)容過濾提高安全性之外,并無其他顯著作用,最常見的例子是內(nèi)網(wǎng)中的硬件防火墻。
間諜代理:指組織或個(gè)人創(chuàng)建的用于記錄用戶傳輸?shù)臄?shù)據(jù),然后進(jìn)行研究、監(jiān)控等目的的代理服務(wù)器。
5. 常見代理設(shè)置
使用網(wǎng)上的免費(fèi)代理:最好使用高匿代理,另外可用的代理不多,需要在使用前篩選一下可用代理,也可以進(jìn)一步維護(hù)一個(gè)代理池。
使用付費(fèi)代理服務(wù):互聯(lián)網(wǎng)上存在許多代理商,可以付費(fèi)使用,質(zhì)量比免費(fèi)代理好很多。
ADSL撥號(hào):撥一次號(hào)換一次IP,穩(wěn)定性高,也是一種比較有效的解決方案。
在后文我們會(huì)詳細(xì)介紹這幾種代理的使用方式。
初級(jí)會(huì)計(jì)職稱中級(jí)會(huì)計(jì)職稱經(jīng)濟(jì)師注冊會(huì)計(jì)師證券從業(yè)銀行從業(yè)會(huì)計(jì)實(shí)操統(tǒng)計(jì)師審計(jì)師高級(jí)會(huì)計(jì)師基金從業(yè)資格稅務(wù)師資產(chǎn)評(píng)估師國際內(nèi)審師ACCA/CAT價(jià)格鑒證師統(tǒng)計(jì)資格從業(yè)
一級(jí)建造師二級(jí)建造師消防工程師造價(jià)工程師土建職稱房地產(chǎn)經(jīng)紀(jì)人公路檢測工程師建筑八大員注冊建筑師二級(jí)造價(jià)師監(jiān)理工程師咨詢工程師房地產(chǎn)估價(jià)師 城鄉(xiāng)規(guī)劃師結(jié)構(gòu)工程師巖土工程師安全工程師設(shè)備監(jiān)理師環(huán)境影響評(píng)價(jià)土地登記代理公路造價(jià)師公路監(jiān)理師化工工程師暖通工程師給排水工程師計(jì)量工程師
人力資源考試教師資格考試出版專業(yè)資格健康管理師導(dǎo)游考試社會(huì)工作者司法考試職稱計(jì)算機(jī)營養(yǎng)師心理咨詢師育嬰師事業(yè)單位教師招聘公務(wù)員公選考試招警考試選調(diào)生村官
執(zhí)業(yè)藥師執(zhí)業(yè)醫(yī)師衛(wèi)生資格考試衛(wèi)生高級(jí)職稱護(hù)士資格證初級(jí)護(hù)師主管護(hù)師住院醫(yī)師臨床執(zhí)業(yè)醫(yī)師臨床助理醫(yī)師中醫(yī)執(zhí)業(yè)醫(yī)師中醫(yī)助理醫(yī)師中西醫(yī)醫(yī)師中西醫(yī)助理口腔執(zhí)業(yè)醫(yī)師口腔助理醫(yī)師公共衛(wèi)生醫(yī)師公衛(wèi)助理醫(yī)師實(shí)踐技能內(nèi)科主治醫(yī)師外科主治醫(yī)師中醫(yī)內(nèi)科主治兒科主治醫(yī)師婦產(chǎn)科醫(yī)師西藥士/師中藥士/師臨床檢驗(yàn)技師臨床醫(yī)學(xué)理論中醫(yī)理論