中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

反爬蟲機(jī)制和破解方法匯總

2023-05-04    分類: 網(wǎng)站建設(shè)

什么是爬蟲和反爬蟲?

  • 爬蟲:使用任何技術(shù)手段,批量獲取網(wǎng)站信息的一種方式。
  • 反爬蟲:使用任何技術(shù)手段,阻止別人批量獲取自己網(wǎng)站信息的一種方式。

爬蟲機(jī)制

常見的反爬蟲機(jī)制

  • 通過UA 識別爬蟲 有些爬蟲的UA是特殊的,與正常瀏覽器的不一樣,可通過識別特征UA,直接封掉爬蟲請求
  • 設(shè)置IP訪問頻率,如果超過一定頻率,彈出驗證碼 如果輸入正確的驗證碼,則放行,如果沒有輸入,則拉入禁止一段時間,如果超過禁爬時間,再次出發(fā)驗證碼,則拉入黑名單。當(dāng)然根據(jù)具體的業(yè)務(wù),為不同場景設(shè)置不同閾值,比如登陸用戶和非登陸用戶,請求是否含有refer。
  • 通過并發(fā)識別爬蟲 有些爬蟲的并發(fā)是很高的,統(tǒng)計并發(fā)最高的IP,加入黑名單(或者直接封掉爬蟲IP所在C段)
  • 請求的時間窗口過濾統(tǒng)計 爬蟲爬取網(wǎng)頁的頻率都是比較固定的,不像人去訪問網(wǎng)頁,中間的間隔時間比較無規(guī)則,所以我們可以給每個IP地址建立一個時間窗口,記錄IP地址最近12次訪問時間,每記錄一次就滑動一次窗口,比較最近訪問時間和當(dāng)前時間,如果間隔時間很長判斷不是爬蟲,清除時間窗口,如果間隔不長,就回溯計算指定時間段的訪問頻率,如果訪問頻率超過閥值,就轉(zhuǎn)向驗證碼頁面讓用戶填寫驗證碼
  • 限制單個ip/api token的訪問量 比如15分鐘限制訪問頁面180次,具體標(biāo)準(zhǔn)可參考一些大型網(wǎng)站的公開api,如twitter api,對于抓取用戶公開信息的爬蟲要格外敏感
  • 識別出合法爬蟲 對http頭agent進(jìn)行驗證,是否標(biāo)記為、百度的spider,嚴(yán)格一點(diǎn)的話應(yīng)該判別來源IP是否為、baidu的爬蟲IP,這些IP在網(wǎng)上都可以找到。校驗出來IP不在白名單就可以阻止訪問內(nèi)容。
  • 蜜罐資源 爬蟲解析離不開正則匹配,適當(dāng)在頁面添加一些正常瀏覽器瀏覽訪問不到的資源,一旦有ip訪問,過濾下頭部是不是搜素引擎的蜘蛛,不是就可以直接封了。比如說隱式鏈接。

破解反爬蟲機(jī)制的幾種方法

  • 策略1:設(shè)置下載延遲,比如數(shù)字設(shè)置為5秒,越大越安全
  • 策略2:禁止Cookie,某些網(wǎng)站會通過Cookie識別用戶身份,禁用后使得服務(wù)器無法識別爬蟲軌跡
  • 策略3:使用user agent池。也就是每次發(fā)送的時候隨機(jī)從池中選擇不一樣的瀏覽器頭信息,防止暴露爬蟲身份
  • 策略4:使用IP池,這個需要大量的IP資源,可以通過抓取網(wǎng)上免費(fèi)公開的IP建成自有的IP代理池。
  • 策略5:分布式爬取,這個是針對大型爬蟲系統(tǒng)的,實現(xiàn)一個分布式的爬蟲,主要為以下幾個步驟:
    1、基本的http抓取工具,如scrapy;
    2、避免重復(fù)抓取網(wǎng)頁,如Bloom Filter;
    3、維護(hù)一個所有集群機(jī)器能夠有效分享的分布式隊列;
    4、將分布式隊列和Scrapy的結(jié)合;
    5、后續(xù)處理,網(wǎng)頁析取(如python-goose),存儲(如Mongodb)。
  • 策略6:模擬登錄—瀏覽器登錄的爬取 設(shè)置一個cookie處理對象,它負(fù)責(zé)將cookie添加到http請求中,并能從http響應(yīng)中得到cookie,向網(wǎng)站登錄頁面發(fā)送一個請求Request, 包括登錄url,POST請求的數(shù)據(jù),Http header利用urllib2.urlopen發(fā)送請求,接收WEB服務(wù)器的Response。

文章名稱:反爬蟲機(jī)制和破解方法匯總
URL鏈接:http://m.rwnh.cn/news9/258009.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、軟件開發(fā)、面包屑導(dǎo)航App開發(fā)、品牌網(wǎng)站建設(shè)營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
宣恩县| 翁源县| 龙山县| 安国市| 金昌市| 布尔津县| 松江区| 临泽县| 丹阳市| 循化| 惠东县| 丽江市| 贵南县| 凌云县| 武川县| 武鸣县| 龙川县| 湄潭县| 龙山县| 原阳县| 郎溪县| 突泉县| 昭觉县| 佳木斯市| 勐海县| 井研县| 大姚县| 芦溪县| 大同县| 体育| 且末县| 塘沽区| 辽阳市| 射洪县| 新乐市| 航空| 西畴县| 临朐县| 湖北省| 洱源县| 石景山区|