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

關(guān)于 Python 反爬蟲,我有幾點(diǎn)想說(shuō)的

安全 應(yīng)用安全 后端
高頻的網(wǎng)絡(luò)爬蟲行為無(wú)異于DDOS(分布式拒絕服務(wù))攻擊,雖然法律可以治它,但是其過(guò)程之繁瑣,還是不如先讓網(wǎng)站自身充分地強(qiáng)大起來(lái)。

今天來(lái)談?wù)勱P(guān)于反爬蟲的東西。

隨著大數(shù)據(jù)時(shí)代的來(lái)臨,無(wú)論是個(gè)人還是企業(yè),對(duì)于數(shù)據(jù)的需求都越來(lái)越大。這種需求也催生了如今異常熱門的數(shù)據(jù)產(chǎn)業(yè),也催生了日益完善的網(wǎng)絡(luò)數(shù)據(jù)采集技術(shù)。

[[326890]]

這種需求的擴(kuò)大, 同時(shí)讓網(wǎng)絡(luò)爬蟲日益猖獗,猖獗到甚至影響到了網(wǎng)站和APP的正常運(yùn)行。

高頻的網(wǎng)絡(luò)爬蟲行為無(wú)異于DDOS(分布式拒絕服務(wù))攻擊,雖然法律可以治它,但是其過(guò)程之繁瑣,還是不如先讓網(wǎng)站自身充分地強(qiáng)大起來(lái)。

為了便于基礎(chǔ)薄弱的同學(xué)理解,我們先看一個(gè)基本的網(wǎng)站訪問(wèn)鏈路圖:

這其中包含了我們從個(gè)人電腦的瀏覽器上訪問(wèn)一個(gè)網(wǎng)頁(yè)所涉及的所有部件。同時(shí)我們可以將其簡(jiǎn)化為下圖:

一、為什么要反爬蟲?

在設(shè)計(jì)反爬蟲系統(tǒng)之前,我們先來(lái)看看爬蟲會(huì)給網(wǎng)站帶來(lái)什么問(wèn)題?

本質(zhì)上來(lái)說(shuō),互聯(lián)網(wǎng)上可以供人們?yōu)g覽、查看和使用的網(wǎng)站及其網(wǎng)站上的數(shù)據(jù),都是公開(kāi)和允許獲取的,所以并不存在于所謂的“非法授權(quán)訪問(wèn)”問(wèn)題。

爬蟲程序訪問(wèn)網(wǎng)頁(yè)和人訪問(wèn)網(wǎng)頁(yè)沒(méi)有本質(zhì)區(qū)別,都是由客戶端向網(wǎng)站服務(wù)器發(fā)起HTTP請(qǐng)求,網(wǎng)站服務(wù)器接收到請(qǐng)求之后將內(nèi)容響應(yīng)返回給客戶端。

只要是發(fā)起請(qǐng)求,網(wǎng)站服務(wù)器必然要進(jìn)行響應(yīng),要進(jìn)行響應(yīng),必然要消耗服務(wù)器的資源。

網(wǎng)站的訪問(wèn)者與網(wǎng)站之間是互相互惠互利的關(guān)系,網(wǎng)站為訪問(wèn)者提供了自己所需要的必要的信息和服務(wù),而訪問(wèn)者也為網(wǎng)站帶來(lái)了流量、訪客、活躍度。所以網(wǎng)站的所有者會(huì)愿意消耗服務(wù)器的帶寬、磁盤、內(nèi)存,為訪問(wèn)者提供服務(wù)。

而爬蟲程序呢?無(wú)異于白嫖黨。成倍地消耗網(wǎng)站服務(wù)器資源、占用服務(wù)器帶寬,卻不會(huì)為網(wǎng)站帶來(lái)一絲的利益,甚至于,最后的結(jié)果是有損于網(wǎng)站本身的。 

爬蟲,可能算得上是互聯(lián)網(wǎng)里的非洲鬣狗了,也難怪遭網(wǎng)站的所有者討厭了。

二、識(shí)別爬蟲

既然討厭爬蟲,所以要將爬蟲拒之于網(wǎng)站的門外了。要拒絕爬蟲的訪問(wèn),首先當(dāng)然要識(shí)別出網(wǎng)絡(luò)訪問(wèn)者中的爬蟲程序。如何識(shí)別呢?

1. HTTP請(qǐng)求頭

這算是最基礎(chǔ)的網(wǎng)絡(luò)爬蟲識(shí)別了,正常的網(wǎng)絡(luò)訪問(wèn)者都是通過(guò)瀏覽器對(duì)網(wǎng)站進(jìn)行訪問(wèn)的。而瀏覽器都會(huì)帶上自己的請(qǐng)求頭以表明自己的基礎(chǔ)信息。而這也是最容易被爬蟲程序突破的識(shí)別手段,因?yàn)镠TTP請(qǐng)求頭誰(shuí)都可以進(jìn)行修改和偽造。

2. Cookie值

Cookie通常用來(lái)標(biāo)識(shí)網(wǎng)站訪問(wèn)者的身份,就像是手上的一張臨時(shí)憑證。并憑著這個(gè)憑著與網(wǎng)站服務(wù)器進(jìn)行身份的校對(duì)。很遺憾,Cookie是保存在客戶端的數(shù)據(jù),也可以被修改和偽造。

3. 訪問(wèn)頻率

如果一個(gè)訪問(wèn)者,每隔1秒請(qǐng)求一次網(wǎng)站的某個(gè)頁(yè)面,或者一秒鐘請(qǐng)求了幾百次這個(gè)頁(yè)面。這個(gè)訪問(wèn)者不是爬蟲程序就有鬼了。試問(wèn)人類中有誰(shuí)能快速和頻繁地點(diǎn)擊鼠標(biāo)訪問(wèn)一個(gè)頁(yè)面?他是得了帕金森綜合征還是八爪魚轉(zhuǎn)世?

通過(guò)訪問(wèn)頻率來(lái)識(shí)別爬蟲程序是可行的,但是爬蟲程序也能通過(guò)使用大量的代理IP來(lái)實(shí)現(xiàn)一個(gè)IP地址只訪問(wèn)了一次的效果,也可以通過(guò)隨機(jī)的請(qǐng)求時(shí)間間隔規(guī)避。

4. 鼠標(biāo)行為軌跡

正常人類訪問(wèn)者瀏覽網(wǎng)頁(yè)勢(shì)必不會(huì)像機(jī)器一樣,機(jī)械地移動(dòng)和點(diǎn)擊鼠標(biāo)。而鼠標(biāo)的移動(dòng)和點(diǎn)擊,是可以通過(guò)JS腳本捕獲到的,所以可以通過(guò)判斷訪問(wèn)者的鼠標(biāo)行為軌跡來(lái)判斷訪問(wèn)者是否為爬蟲程序。

5. token值

現(xiàn)在很多網(wǎng)站都是前后端分離開(kāi)發(fā)的,數(shù)據(jù)通過(guò)后端接口返回給前端,前端拿到數(shù)據(jù)再結(jié)合頁(yè)面進(jìn)行渲染。所以很多爬蟲程序都直接找數(shù)據(jù)接口,而不是傻傻地請(qǐng)求頁(yè)面了。token就用在驗(yàn)證這些后端數(shù)據(jù)接口上。token一般通過(guò)網(wǎng)頁(yè)上的某個(gè)密鑰加上時(shí)間再加上某些數(shù)據(jù)組合加密而成。

還有更多地識(shí)別爬蟲的手段在此就不一一進(jìn)行介紹。很遺憾的是,上述任何一種識(shí)別爬蟲的手段,都有可能被爬蟲繞過(guò)和突破。

三、拒絕爬蟲

就像沒(méi)有一勞永逸的網(wǎng)站安全防護(hù)一樣,十年前把3389端口一關(guān),就能防止服務(wù)器成為肉雞,如今各種防火墻、各種安全措施都加上了,還有可能因?yàn)槟硞€(gè)0Day漏洞被勒索。

爬蟲與反爬蟲之間,也永遠(yuǎn)都在斗爭(zhēng)和升級(jí)。所不同的是,網(wǎng)絡(luò)攻防是放開(kāi)手腳的無(wú)限制級(jí)格斗,而反爬蟲則是帶著拳套和頭盔的奧運(yùn)拳擊。

網(wǎng)站為了運(yùn)營(yíng),勢(shì)必要對(duì)外開(kāi)放內(nèi)容,而開(kāi)放的內(nèi)容就像是飄忽在非洲大草原的腐肉和血腥味,直勾勾地吸引著鬣狗的到來(lái)。

在開(kāi)放內(nèi)容和避免淪為爬蟲的數(shù)據(jù)礦池之間平衡,是一個(gè)難事。

1. 內(nèi)容上限制內(nèi)容的開(kāi)放

開(kāi)放的內(nèi)容是獲取用戶、流量的基礎(chǔ),所以內(nèi)容必須是開(kāi)放的。但是內(nèi)容的開(kāi)放并不是無(wú)限制的開(kāi)放。非注冊(cè)用戶可以看到一篇內(nèi)容、兩篇內(nèi)容,但是不能無(wú)限地一直看到內(nèi)容。這個(gè)限制,可以是要求登錄,可以是要求掃碼驗(yàn)證,可以是接入谷歌驗(yàn)證碼之類的點(diǎn)擊驗(yàn)證機(jī)制。

現(xiàn)在已經(jīng)有越來(lái)越多的網(wǎng)站采用了有限內(nèi)容開(kāi)放的機(jī)制,比如微博、知乎、淘寶等,你可以看到一頁(yè)兩頁(yè)的內(nèi)容,但是如果還想繼續(xù),對(duì)不起請(qǐng)登錄。

2. 行為上記錄用戶操作

需要訪問(wèn)者進(jìn)行登錄并不能解決問(wèn)題,因?yàn)槟M登錄一直是網(wǎng)絡(luò)爬蟲程序的一個(gè)熱門發(fā)展分支,無(wú)論是圖片驗(yàn)證碼、拼圖、滑塊還是點(diǎn)選漢字,都會(huì)被突破。甚至于短信驗(yàn)證碼都可以通過(guò)編寫APP與爬蟲程序和網(wǎng)站之間進(jìn)行通信。

所以記錄用戶行為必不可少,用戶的一切操作和訪問(wèn)行為都需要記錄在案,這是分析和處理爬蟲的基礎(chǔ)。

3. 控制上嚴(yán)厲打擊高頻行為

從實(shí)際上來(lái)看,也有很多爬蟲程序的運(yùn)行并非是為了往死里薅網(wǎng)站的數(shù)據(jù)和內(nèi)容,僅僅是為了方便進(jìn)行手工的收集和整理工作,這種類型的爬蟲行為一般會(huì)比人工瀏覽的頻次要高,但是又顯著低于鬣狗般的高頻爬蟲,對(duì)這種類型的爬蟲行為可以忽略掉。做人留一線,日后好相見(jiàn)。

但是對(duì)于影響網(wǎng)站服務(wù)器運(yùn)行的高頻爬蟲行為,必須采取措施。結(jié)合用戶和IP信息,對(duì)相關(guān)用戶或IP進(jìn)行處理。

4. 協(xié)議里申明權(quán)利

網(wǎng)站的所有者必須在網(wǎng)站協(xié)議或用戶協(xié)議里申明,允許正常的瀏覽、訪問(wèn)和數(shù)據(jù)獲取,對(duì)于異常、高頻、威脅網(wǎng)站服務(wù)器穩(wěn)定的行為,將保留進(jìn)一步處理的權(quán)利。

四、最后

沒(méi)有一個(gè)城池是固若金湯的,也沒(méi)有一個(gè)措施可以阻擋所有瘋狂的爬蟲。面對(duì)爬蟲的行為,利用各種技術(shù)建立一個(gè)行之有效的識(shí)別、分級(jí)和處理機(jī)制,才能既保得網(wǎng)站的開(kāi)放,才能獲得網(wǎng)站的穩(wěn)定。

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2020-10-11 20:46:41

計(jì)算機(jī)人工智能技術(shù)

2021-10-19 12:04:57

Aardio桌面應(yīng)用

2020-02-03 09:11:29

IT技術(shù)程序員

2020-02-25 16:56:02

面試官有話想說(shuō)

2018-02-02 12:12:46

開(kāi)始習(xí)慣代碼經(jīng)驗(yàn)

2019-04-18 08:41:09

技術(shù)主管阿里

2021-07-20 05:37:17

項(xiàng)目面試簡(jiǎn)歷

2022-11-24 10:24:32

2025-02-10 06:50:00

AIDeepSeek推理模型

2024-06-07 08:56:43

HTTPPythonSelenium

2016-10-13 15:51:50

2010-05-26 14:41:38

JavaScript

2013-09-05 14:41:37

2022-09-14 23:06:45

2020-10-29 10:26:28

DevOps軟件自動(dòng)化

2012-04-02 15:52:11

2010-02-25 10:29:00

oracle認(rèn)證

2022-09-20 07:02:20

網(wǎng)絡(luò)爬蟲反爬蟲

2018-01-29 09:28:44

2021-06-25 14:41:42

網(wǎng)絡(luò)安全
點(diǎn)贊
收藏

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