网络爬虫/数据抓取,反爬虫(更新版)
生活随笔
收集整理的這篇文章主要介紹了
网络爬虫/数据抓取,反爬虫(更新版)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
知己知彼,百戰(zhàn)不殆
想要反網(wǎng)絡(luò)爬蟲(chóng),首先需要了解網(wǎng)絡(luò)爬蟲(chóng),基本概念不說(shuō)了,這里主要對(duì)網(wǎng)路爬蟲(chóng)的特征進(jìn)行闡述:
- 大多數(shù)是高訪問(wèn)量;
- 大多數(shù)是定時(shí)(可加入salt隨機(jī)時(shí)間);
- IP基本固定/不變(IP代理可跳過(guò));
如何反爬蟲(chóng)
反爬蟲(chóng)的思路主要是區(qū)別爬蟲(chóng)和正常人工訪問(wèn)的區(qū)別,進(jìn)行策反,所以發(fā)爬蟲(chóng)需要兩步走,第一步識(shí)別,第二部策反;
識(shí)別
識(shí)別的思路主要是根據(jù)爬蟲(chóng)的特征,但需要考慮人工操作,大體來(lái)說(shuō),識(shí)別分為以下常見(jiàn)方式:
- 統(tǒng)計(jì)數(shù)量,如多久內(nèi)超過(guò)多少訪問(wèn)量;(閾值是人工比較難操作的數(shù)量)
- (不定期,下同)驗(yàn)證碼 > 最常見(jiàn)最普通,技術(shù)門檻最低;
- User-Agent + Referer檢測(cè) / cookies > 可模擬;
- 驗(yàn)證圖形 > 比如拖拉圖形的區(qū)域到指定位置;
- 簡(jiǎn)單算術(shù) > 比較常見(jiàn),加減乘除;
- 回答問(wèn)題 > 小米/魅族等電商網(wǎng)上營(yíng)銷時(shí)常用,如孫悟空的師傅是誰(shuí);
- 選擇點(diǎn)擊圖片 > 12306常見(jiàn)方式;
- 驗(yàn)證性鏈接:
- 驗(yàn)證性區(qū)域 > 根據(jù)界面展示的內(nèi)容展示不可見(jiàn)區(qū)域進(jìn)行識(shí)別,不如列表界面,分頁(yè)或數(shù)據(jù)界面展示不可見(jiàn)區(qū)域,人工操作無(wú)法進(jìn)入,但一般爬蟲(chóng)難以識(shí)別隱藏域;
以上主要的思路就是,電腦做起來(lái)不容易,但人工操作很容易。
策反
- 監(jiān)禁:采集一次放到全局變量中進(jìn)行記錄,并隔離訪問(wèn)(通過(guò)過(guò)濾器攔截器等限制訪問(wèn)),然后再放出來(lái)(提高應(yīng)用容錯(cuò)性),再次符合判斷再進(jìn)行隔離訪問(wèn)或終身監(jiān)禁,但界面展示為網(wǎng)絡(luò)問(wèn)題,等待中(為了防止破譯監(jiān)禁制造假象);
- 投毒:界面展示的數(shù)據(jù)經(jīng)過(guò)加工處理,展示的數(shù)據(jù)變?yōu)榧贁?shù)據(jù)(半真半假)(也可亂碼)(投毒一般都是看起來(lái)像真數(shù)據(jù),不僅僅是爬到真數(shù)據(jù),也是想欺騙爬蟲(chóng));
- 斷奶:如果判斷是爬蟲(chóng),直接拉黑;
- 筑墻:常見(jiàn)的驗(yàn)證碼,各種驗(yàn)證,如簡(jiǎn)單的數(shù)字,復(fù)雜一點(diǎn)的文字、拖動(dòng)滑塊,稍微復(fù)雜一點(diǎn)的成語(yǔ)拼接、識(shí)圖辯色,bug級(jí)別的認(rèn)識(shí)白百何王珞丹、找小星星小傘、排序黑紅方梅等;
- 開(kāi)鎖:第一步拿鑰匙,第二部開(kāi)鎖,第一步必須通過(guò)驗(yàn)證,常見(jiàn)搭配驗(yàn)證碼,返回一個(gè)鑰匙/code,拿著鑰匙拼接正確的url地址進(jìn)行訪問(wèn),才能返回正常的數(shù)據(jù)界面;(筑墻的升級(jí)版)
- 攻擊(難度大,不建議):攻擊方面有保守攻擊和激進(jìn)攻擊兩種,保守攻擊如相應(yīng)延時(shí)策略、返回大批量假數(shù)據(jù)策略、破壞數(shù)據(jù)解析規(guī)則策略等;激進(jìn)攻擊如肉雞;
- 混淆:常見(jiàn)css反爬或字體反爬,css反爬初級(jí)的文字順序變動(dòng)+css調(diào)樣式調(diào)順序,bug級(jí)別的圖片+算法+偏移量等等計(jì)算出內(nèi)容來(lái);字體反爬,網(wǎng)頁(yè)指定不常用字體,普通的客戶端沒(méi)有改字體,服務(wù)器在渲染的時(shí)候通過(guò)指定的服務(wù)器端字體渲染展示,如果沒(méi)有改字體,爬下來(lái)也是亂碼;提名表?yè)P(yáng)大眾點(diǎn)評(píng)
一般建議:
識(shí)別:低成本高收益的是普通驗(yàn)證碼+統(tǒng)計(jì)閾值;
處理:投毒/監(jiān)禁,投毒可適用于部分補(bǔ)救措施;普通的可以筑墻提高爬蟲(chóng)成本;稍微高級(jí)一點(diǎn)可以結(jié)合開(kāi)鎖;大神bug級(jí)別就混淆或各種混搭;
總結(jié)
以上是生活随笔為你收集整理的网络爬虫/数据抓取,反爬虫(更新版)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 不同分辨率图片匹配_杜克大学开源 AI
- 下一篇: 计算机二级试题操作题图文讲解,计算机二级