欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python爬蟲泛濫的解決方法詳解

 更新時(shí)間:2020年11月25日 15:48:00   作者:小妮淺淺  
在本篇文章里小編給大家整理了關(guān)于python爬蟲泛濫的解決方法詳解內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。

我們可以把互聯(lián)網(wǎng)上搬運(yùn)數(shù)據(jù)的程序看成小螞蟻,它們需要采集不同的食物帶回洞里存儲(chǔ)。但是大家也知道白蟻泛濫的事件,在我們的網(wǎng)絡(luò)環(huán)境里,如果爬蟲都集中在某幾個(gè)位置,最直接的結(jié)果就是這個(gè)網(wǎng)站的擁擠。對(duì)于我們這些網(wǎng)站訪問(wèn)者而言也不是好事情,首先網(wǎng)頁(yè)的頁(yè)面會(huì)被卡住。網(wǎng)站的管理人員面對(duì)爬蟲過(guò)多,這時(shí)候就要進(jìn)行一系列的限制措施了,這里小編分了兩個(gè)大的應(yīng)對(duì)方向,從不同的角度進(jìn) 行分析爬蟲過(guò)多的解決思路。

一、識(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)站都是前后端分離開發(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ò)和突破。

二、拒絕爬蟲

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

開放的內(nèi)容是獲取用戶、流量的基礎(chǔ),所以內(nèi)容必須是開放的。但是內(nèi)容的開放并不是無(wú)限制的開放。非注冊(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)容開放的機(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ì)這種類型的爬蟲行為可以忽略掉。做人留一線,日后好相見。

但是對(duì)于影響網(wǎng)站服務(wù)器運(yùn)行的高頻爬蟲行為,高防服務(wù)器必須采取措施。結(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)利。

到此這篇關(guān)于python爬蟲泛濫的解決方法詳解的文章就介紹到這了,更多相關(guān)python爬蟲泛濫的解決實(shí)例內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解析Python中while true的使用

    解析Python中while true的使用

    這篇文章主要介紹了解析Python中while true的使用,while true即用來(lái)制造一個(gè)無(wú)限循環(huán),需要的朋友可以參考下
    2015-10-10
  • 淺析Python 條件控制語(yǔ)句

    淺析Python 條件控制語(yǔ)句

    這篇文章主要介紹了Python 條件控制語(yǔ)句的相關(guān)資料,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Python中else怎么用?else的用法總結(jié)

    Python中else怎么用?else的用法總結(jié)

    這篇文章主要介紹了Python中else的用法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python實(shí)現(xiàn)超時(shí)退出的三種方式總結(jié)

    python實(shí)現(xiàn)超時(shí)退出的三種方式總結(jié)

    這篇文章主要介紹了python實(shí)現(xiàn)超時(shí)退出的三種方式總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 把Anaconda中的環(huán)境導(dǎo)入到Pycharm里面的方法步驟

    把Anaconda中的環(huán)境導(dǎo)入到Pycharm里面的方法步驟

    這篇文章主要介紹了把Anaconda中的環(huán)境導(dǎo)入到Pycharm里面的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • python實(shí)現(xiàn)aes加密及pycryptodome庫(kù)使用

    python實(shí)現(xiàn)aes加密及pycryptodome庫(kù)使用

    AES算法是高級(jí)加密標(biāo)準(zhǔn),它是一種對(duì)稱加密算法,AES只有一個(gè)密鑰,這個(gè)密鑰既用來(lái)加密,也用于解密,這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)aes加密及pycryptodome庫(kù)使用的相關(guān)資料,需要的朋友可以參考下
    2023-10-10
  • Python實(shí)現(xiàn)隨機(jī)漫步功能

    Python實(shí)現(xiàn)隨機(jī)漫步功能

    隨機(jī)漫步生成是無(wú)規(guī)則的,是系統(tǒng)自行選擇的結(jié)果。接下來(lái)通過(guò)本文給大家介紹Python實(shí)現(xiàn)隨機(jī)漫步功能,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-07-07
  • python數(shù)據(jù)操作之lambda表達(dá)式詳情

    python數(shù)據(jù)操作之lambda表達(dá)式詳情

    這篇文章主要介紹了python數(shù)據(jù)操作之lambda表達(dá)式詳情,文章基于python的相關(guān)資料展開lambda表達(dá)式具體的內(nèi)容,感興趣的小伙伴可以參考一下
    2022-05-05
  • Python語(yǔ)法糖for?else循環(huán)語(yǔ)句里的break使用詳解

    Python語(yǔ)法糖for?else循環(huán)語(yǔ)句里的break使用詳解

    這篇文章主要介紹了Python語(yǔ)法糖之for?else循環(huán)語(yǔ)句里的break使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Python代碼生成視頻的縮略圖的實(shí)例講解

    Python代碼生成視頻的縮略圖的實(shí)例講解

    在本篇文章里小編給大家正里的是一篇關(guān)于Python代碼生成視頻的縮略圖的實(shí)例講解,對(duì)此有需要的朋友們可以跟著學(xué)習(xí)下。
    2019-12-12

最新評(píng)論