偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

為什么網(wǎng)站知道我的爬蟲(chóng)使用了代理?

開(kāi)發(fā) 架構(gòu)
網(wǎng)站要檢測(cè)爬蟲(chóng)有非常多的方法,要檢測(cè)一個(gè)請(qǐng)求是不是使用了代理來(lái)發(fā)起,也有很多種方法。

在公眾號(hào)粉絲群里面,經(jīng)常有同學(xué)問(wèn):為什么自己的爬蟲(chóng)明明設(shè)置了代理,但一訪問(wèn)網(wǎng)站就能被發(fā)現(xiàn)。我總結(jié)了幾種常見(jiàn)的情況。

實(shí)際上,網(wǎng)站要識(shí)別你是否使用了代理,并不一定非要什么高深的反爬蟲(chóng)機(jī)制,也不需要使用AI識(shí)別用戶行為。下面這幾種情況,要識(shí)別代理簡(jiǎn)直是易如反掌。

你根本沒(méi)有使用代理

有一些初學(xué)者在使用Requests請(qǐng)求網(wǎng)站的時(shí)候,是這樣寫(xiě)的代碼:

import requests

resp = requests.get('https://httpbin.org/ip').text

print('不使用代理:', resp)

resp = requests.get('https://httpbin.org/ip', proxies={'http': 'http://IP:port'}).text
print('使用代理:', resp)

運(yùn)行效果如下圖所示:

為什么使用了代理以后,IP沒(méi)有變呢?這是很多剛剛使用Requests的同學(xué)常常犯的錯(cuò)誤。因?yàn)槟愀緵](méi)有給https網(wǎng)站使用代理,你的代理只會(huì)對(duì)http網(wǎng)站生效。要對(duì)https網(wǎng)站生效,需要給它指定代理:

resp = requests.get('https://httpbin.org/ip', proxies={'http': 'http://IP:port', 'https': 'http://IP:port'}).text

P.S.: 注意看上面的代碼,給https網(wǎng)址設(shè)置代理的時(shí)候,key是https,但值依然是http://開(kāi)頭。對(duì)一些代理供應(yīng)商來(lái)說(shuō),如果你把這里設(shè)置成了https://開(kāi)頭,就會(huì)報(bào)錯(cuò)。不過(guò)這個(gè)原理跟本文無(wú)關(guān),就暫時(shí)不講了。如果大家有興趣的話,我再寫(xiě)一篇文章來(lái)講。

你的代理IP是服務(wù)器IP

有很多代理供應(yīng)商,他們批量采購(gòu)云服務(wù)器來(lái)搭建代理服務(wù)。例如國(guó)內(nèi)的供應(yīng)商會(huì)采購(gòu)阿里云、騰訊云、華為云的服務(wù)器來(lái)搭建代理。海外的供應(yīng)商會(huì)采購(gòu)AWS或者Google云服務(wù)器。

如果你在云服務(wù)器上跑過(guò)不加代理的爬蟲(chóng),你會(huì)發(fā)現(xiàn),有時(shí)候一個(gè)爬蟲(chóng),不加代理,在自己電腦上跑一點(diǎn)問(wèn)題都沒(méi)有,但是在云服務(wù)器上一跑就會(huì)被識(shí)別。這是因?yàn)樵品?wù)器的IP地址范圍跟家用寬帶是不一樣的。

像AWS和Google云,他們的云服務(wù)器IP范圍是公開(kāi)的,只要網(wǎng)站提前把來(lái)自這個(gè)范圍的所有請(qǐng)求全部禁掉,那么從AWS、Google云服務(wù)器上面發(fā)起的請(qǐng)求直接就會(huì)被當(dāng)做爬蟲(chóng)請(qǐng)求。因此搭建在上面的代理服務(wù)自然就不會(huì)生效了。

國(guó)內(nèi)的云服務(wù)供應(yīng)商的服務(wù)器IP地址是否公布過(guò)我不太清楚,但他們的IP范圍肯定是跟家用IP不一樣的。網(wǎng)址遇到來(lái)自這些可疑IP范圍的請(qǐng)求時(shí),雖然不一定完全封禁,但是彈一個(gè)驗(yàn)證碼出來(lái)測(cè)一測(cè),還是可以擋住很多爬蟲(chóng)。

遇到這種情況,爬蟲(chóng)只有設(shè)法采購(gòu)一些使用家用寬帶搭建代理服務(wù)的供應(yīng)商,才能解決問(wèn)題。但這種代理價(jià)格肯定會(huì)翻好幾倍。

你的代理IP不是高匿代理

代理IP有三種常見(jiàn)的類型,透明代理,匿名代理和高匿代理:

  • 使用透明代理的時(shí)候,網(wǎng)站可以同時(shí)看到代理IP和你的真實(shí)IP。用了等于白用。
  • 使用匿名代理的時(shí)候,網(wǎng)站看不到你的真實(shí)IP,但是在請(qǐng)求里面有一個(gè)特征,可以告訴網(wǎng)站,你正在使用代理訪問(wèn)。
  • 而只有真正的高匿代理,才能把你的爬蟲(chóng)請(qǐng)求隱藏起來(lái)。

有一些同學(xué)可能會(huì)從網(wǎng)上搜索免費(fèi)的代理IP來(lái)使用。但這里面很多代理并不是高匿代理??隙〞?huì)被發(fā)現(xiàn)。

服務(wù)器供應(yīng)商的IP池被污染

有些人的爬蟲(chóng)寫(xiě)得非常垃圾,自以為有代理就無(wú)所畏懼,爬蟲(chóng)請(qǐng)求漏掉百出,網(wǎng)站即使不檢查IP頻率,也可以從其它特征知道這是爬蟲(chóng)請(qǐng)求,于是網(wǎng)站就會(huì)連帶著這個(gè)代理IP一起封掉。而偏偏這種垃圾爬蟲(chóng)的請(qǐng)求速度又極快。哪怕代理供應(yīng)商的IP池中有幾百萬(wàn)個(gè)IP,也會(huì)很快被這些垃圾爬蟲(chóng)全部害死。

國(guó)內(nèi)頭部網(wǎng)站每天都會(huì)被數(shù)以千萬(wàn)計(jì)的爬蟲(chóng)請(qǐng)求訪問(wèn),而主流的代理供應(yīng)商就那么幾家。如果很多垃圾爬蟲(chóng)都選中了同一家供應(yīng)商,而他們的代理池更新又不及時(shí)。那么你使用了這家供應(yīng)商的代理IP,自然一來(lái)就會(huì)被發(fā)現(xiàn)。

代理不支持HTTP/2

有一些網(wǎng)站需要使用HTTP/2請(qǐng)求。在Python里面,已經(jīng)有不少HTTP客戶端庫(kù)支持發(fā)起HTTP/2的請(qǐng)求了,例如httpx。但是,現(xiàn)在很少有代理供應(yīng)商能提供支持HTTP/2的代理,因?yàn)樗罱ㄆ饋?lái)比較麻煩。于是,當(dāng)你使用了支持HTTP/2的客戶端,通過(guò)一個(gè)HTTP/1.1的代理IP訪問(wèn)一個(gè)HTTP/2的網(wǎng)站的時(shí)候,網(wǎng)站并不能正常返回內(nèi)容。

總結(jié)

網(wǎng)站要檢測(cè)爬蟲(chóng)有非常多的方法,要檢測(cè)一個(gè)請(qǐng)求是不是使用了代理來(lái)發(fā)起,也有很多種方法。而且這些方法并不需要什么高深的技術(shù),一個(gè)初級(jí)工程師都能寫(xiě)出來(lái)。

那些自以為給爬蟲(chóng)加了代理就可隨便爬網(wǎng)站的人,你們不僅害了自己,還害了別的爬蟲(chóng)。

責(zé)任編輯:趙寧寧 來(lái)源: 未聞Code
相關(guān)推薦

2020-08-10 11:20:59

索引MySQL數(shù)據(jù)庫(kù)

2025-02-24 10:36:15

2023-03-24 21:03:56

服務(wù)器代理

2019-09-17 15:30:13

Java編程語(yǔ)言

2015-09-22 11:09:47

Java 8動(dòng)態(tài)代理

2021-04-22 18:34:01

協(xié)議DNSUDP

2012-05-24 09:13:20

2023-04-04 19:14:40

Linux發(fā)行版Alpine

2020-12-29 05:34:00

動(dòng)態(tài)代理

2021-03-16 21:42:37

反向代理正向代理

2012-06-04 10:35:55

FirefoxChrome瀏覽器

2020-06-19 08:01:48

Kotlin 協(xié)程編程

2021-04-26 20:44:59

Nacos方法String.inte

2024-02-04 16:51:47

2024-04-03 09:23:31

ES索引分析器

2025-01-15 09:06:58

CSSRegEx前端

2016-11-08 09:04:20

ChromeHTTP網(wǎng)站

2012-04-04 22:07:12

Android

2020-08-14 09:11:29

RedisQPS數(shù)據(jù)庫(kù)

2012-02-28 09:11:51

語(yǔ)言Lua
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)