【爬蟲(chóng)】你需要的反反爬小妙招來(lái)啦~

1 前言

作為一名職業(yè)的爬蟲(chóng)工程師驼壶,每天面對(duì)的就是要和目標(biāo)網(wǎng)站后方的反爬蟲(chóng)工程師斗智斗勇罚拟,似乎頗有一種攻城拔寨的感覺(jué)悄雅,在終于突破層層阻礙之后驱敲,“200 OK”將會(huì)到來(lái)。

在關(guān)于反反爬的第一篇文章宽闲,我將根據(jù)我的經(jīng)驗(yàn)众眨,先介紹一下基于Headers反爬握牧、基于用戶行為反爬,及其相對(duì)應(yīng)的反反爬手段娩梨。


2 正文

基于Headers反爬

對(duì)所有請(qǐng)求的Headers進(jìn)行檢查是反爬的第一步沿腰,一般情況下,網(wǎng)站的工程師會(huì)對(duì)所有請(qǐng)求的頭部進(jìn)行檢查姚建,疑似爬蟲(chóng)的請(qǐng)求都將被丟棄或返回400矫俺。常見(jiàn)的檢查項(xiàng)有:User-AgentReferer其他掸冤。

【User-Agent】:對(duì)User-Agent的檢查一般是為了鑒別請(qǐng)求發(fā)出使用的工具厘托,比如默認(rèn)情況下Python requests發(fā)出的請(qǐng)求中User-Agent字段都是Python的版本信息,Curl發(fā)出的請(qǐng)求中User-Agent字段都是Curl版本信息等稿湿,反爬人員只要對(duì)其進(jìn)行匹配铅匹,就可以篩掉爬蟲(chóng)程序,正常的用戶肯定不是使用這些工具來(lái)訪問(wèn)頁(yè)面的饺藤,不是么包斑。

應(yīng)對(duì)手段:要避免被反爬人員識(shí)別我們的爬蟲(chóng)程序,那就要進(jìn)行User-Agent的偽裝涕俗,幾乎所有可以發(fā)出HTTP請(qǐng)求的工具都可以指定Headers罗丰,比如Python requests模塊,在get或者post時(shí)再姑,可指定Headers萌抵。常用的辦法是(這也是我剛Get到的),構(gòu)建一個(gè)UA數(shù)組元镀,每次請(qǐng)求由程序隨機(jī)獲取UA绍填。如下。

如果上面的辦法還是不奏效的話栖疑,那就要祭出大招了讨永,將UA的參數(shù)改為“Baiduspider+”,基本就妥了遇革。(hahaha)

【Referer】:一般對(duì)Referer檢查的不對(duì)卿闹,但是有一些為了防止盜鏈,會(huì)對(duì)部分頁(yè)面進(jìn)行Referer的判斷澳淑,比如比原,頁(yè)面A只能從頁(yè)面B點(diǎn)擊過(guò)來(lái),沒(méi)有其他途徑杠巡,那么你的Headers中顯示從頁(yè)面C過(guò)來(lái)量窘,那保不齊就給你400了。

應(yīng)對(duì)手段:在進(jìn)行協(xié)議模擬和協(xié)議仿真的時(shí)候氢拥,多留點(diǎn)心蚌铜。出錯(cuò)了看看瀏覽器真實(shí)訪問(wèn)的Referer锨侯,copy過(guò)來(lái)嘛。

【其他】:有一些站點(diǎn)冬殃,是會(huì)構(gòu)建特殊參數(shù)在Headers里面囚痴,如果沒(méi)有這些參數(shù)就不能正常返回。

應(yīng)對(duì)手段:這些參數(shù)有可能是固定的审葬,也有可能是上下文獲取的或計(jì)算得到的深滚,這就需要更多的經(jīng)驗(yàn)和仔細(xì)的分析了。如果是固定的那照抄就好涣觉,如果是上下文傳過(guò)來(lái)的痴荐,那分析上下文找到參數(shù)的來(lái)源再模擬即可。如果是計(jì)算得來(lái)的官册,那就屬于比較難處理的一種了生兆,需要分析和跟蹤JS代碼獲取參數(shù)的計(jì)算方法,這一部分后面的文章再講吧膝宁。

基于用戶行為

基于用戶行為是個(gè)大的分類鸦难,里面包括很多種反爬手段,比如某賬號(hào)頻繁多次訪問(wèn)员淫,比如前端判斷輸入密碼是的姿勢(shì)不對(duì)(支付寶判斷輸入賬戶密碼不符合人類行為會(huì)不予登錄合蔽,比如輸入過(guò)快,在使用selenium模擬瀏覽器操作時(shí)會(huì)遇到類似問(wèn)題)介返,比如某IP頻繁訪問(wèn)等等辈末。這里主要要介紹的是反爬人員針對(duì)IP進(jìn)行篩選,屏蔽頻繁訪問(wèn)的IP地址這種手段映皆。

經(jīng)過(guò)潛伏在反爬陣營(yíng)里的小伙伴透露,在反爬人員觀察后端數(shù)據(jù)時(shí)轰枝,有時(shí)會(huì)看到同一個(gè)IP短時(shí)間里的訪問(wèn)請(qǐng)求UA一直在變捅彻。然后他就把這個(gè)IP加到了黑名單。

這個(gè)UA一直變的鞍陨,應(yīng)該是用到了我們前面說(shuō)到的隨機(jī)UA的方案步淹,但是,反爬人員又看到IP是不變的诚撵,便將其判定為爬蟲(chóng)程序缭裆。那如果我們的訪問(wèn)IP也是一直變化啊的呢。

將將將將~

今天的主角出場(chǎng)【HTTP(S)代理】寿烟。

HTTP代理:使用代理客戶機(jī)進(jìn)行http訪問(wèn)澈驼,主要代理瀏覽器訪問(wèn)網(wǎng)頁(yè)。

主要的功能有:

1.突破自身IP訪問(wèn)限制筛武,訪問(wèn)國(guó)外站點(diǎn)缝其。

2.訪問(wèn)一些單位或團(tuán)體內(nèi)部資源挎塌,如某大學(xué)FTP

3.提高訪問(wèn)速度:通常代理服務(wù)器都設(shè)置一個(gè)較大的硬盤(pán)緩沖區(qū),當(dāng)有外界的信息通過(guò)時(shí)内边,同時(shí)也將其保存到緩沖區(qū)中榴都,當(dāng)其他用戶再訪問(wèn)相同的信息時(shí), 則直接由緩沖區(qū)中取出信息漠其,傳給用戶嘴高,以提高訪問(wèn)速度。

4.隱藏真實(shí)IP:上網(wǎng)者也可以通過(guò)這種方法隱藏自己的IP和屎,免受攻擊拴驮。

From 百度百科

我們要用到的就是通過(guò)代理服務(wù)器訪問(wèn)目標(biāo)站點(diǎn)以達(dá)到隱藏真實(shí)IP的目的

目前我們用來(lái)做爬蟲(chóng)的工具基本都是支持通過(guò)配置代理訪問(wèn)的眶俩,比如使用Python requests莹汤,在get/post請(qǐng)求通過(guò)參數(shù)proxies配置HTTP代理進(jìn)行訪問(wèn),遠(yuǎn)端將無(wú)法辨別你的真實(shí)地址(指匿名代理颠印,該場(chǎng)景不使用透明代理)纲岭。如下:

所以在工作中,我們可能需要大量可用的HTTP代理資源线罕。當(dāng)然止潮,萬(wàn)能的某寶一定是有賣的,但是要么質(zhì)量不好钞楼,要么賣得太貴喇闸。

于是,我用爬蟲(chóng)爬取了網(wǎng)上大量的可用代理询件,并定時(shí)進(jìn)行可用性驗(yàn)證燃乍,生成了自己的高可用高匿HTTP(S)代理池。

有福同享宛琅,我將我的爬蟲(chóng)部署在了百度云服務(wù)器刻蟹,然后由微信公眾號(hào)訪問(wèn)獲得并下發(fā)給各位。

現(xiàn)在嘿辟,只要關(guān)注 燕幕自安舆瘪,在后臺(tái)回復(fù)代理即可獲得最新更新的10條高匿代理資源。如果你需要更大量的數(shù)據(jù)红伦,請(qǐng)私下與我聯(lián)系英古。

對(duì)于HTTPS代理是否有效,可以在百度搜索 ip 進(jìn)行測(cè)試昙读。如下召调。



3 最后

關(guān)于反反爬我會(huì)根據(jù)自己的成長(zhǎng)和經(jīng)驗(yàn)一直寫(xiě)下去,希望感興趣的朋友關(guān)注。

重申一下:在后臺(tái)回復(fù)代理即可獲得最新更新的10條高匿代理資源某残。另外国撵,回復(fù)目錄可看到提供的各項(xiàng)功能。

Over~

非經(jīng)過(guò)本人同意玻墅,嚴(yán)禁轉(zhuǎn)載介牙。

如有問(wèn)題,請(qǐng)關(guān)注公眾號(hào)回復(fù)【作者】獲取我的聯(lián)系方式澳厢。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末环础,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子剩拢,更是在濱河造成了極大的恐慌线得,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件徐伐,死亡現(xiàn)場(chǎng)離奇詭異贯钩,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)办素,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)角雷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人性穿,你說(shuō)我怎么就攤上這事勺三。” “怎么了需曾?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵吗坚,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我呆万,道長(zhǎng)商源,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任谋减,我火速辦了婚禮炊汹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逃顶。我一直安慰自己,他們只是感情好充甚,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布以政。 她就那樣靜靜地躺著,像睡著了一般伴找。 火紅的嫁衣襯著肌膚如雪盈蛮。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,816評(píng)論 1 290
  • 那天技矮,我揣著相機(jī)與錄音抖誉,去河邊找鬼殊轴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛袒炉,可吹牛的內(nèi)容都是我干的旁理。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼我磁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼孽文!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起夺艰,我...
    開(kāi)封第一講書(shū)人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤芋哭,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后郁副,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體减牺,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年存谎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拔疚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡愕贡,死狀恐怖草雕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情固以,我是刑警寧澤墩虹,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站憨琳,受9級(jí)特大地震影響诫钓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜篙螟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一菌湃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧遍略,春花似錦惧所、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至蕾久,卻和暖如春势似,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工履因, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留障簿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓栅迄,卻偏偏與公主長(zhǎng)得像站故,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子霞篡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容