爬蟲突破方式
首先了解爬蟲的突破方式:
- 請(qǐng)求頭
- cookie
- 訪問的時(shí)間路徑
- ip限制
參考 https://blog.csdn.net/jss19940414/article/details/85038263?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242
防爬
防爬蟲的基本理念:增加爬蟲成本
運(yùn)維層級(jí):
- 限制IP單位時(shí)間訪問次數(shù)還有頻率
- nginx優(yōu)化:增加篩選策略弊琴,基于iptables和shell腳本借杰;自帶功能httpuseragent阻塞,限制可訪問user agent
- 增加防爬腳本:nginx lua寫腳本
- robots.txt防爬(效果不大)
業(yè)務(wù)層級(jí):
- 增加用戶訪問限制榕莺,對(duì)不同的業(yè)務(wù)進(jìn)行層級(jí)劃分云头,如課程增加分段下發(fā),完成一定比例后才能獲取后續(xù)等
- 增加關(guān)鍵業(yè)務(wù)訪問驗(yàn)證功能,如課程被訪問時(shí)增加驗(yàn)證趾痘,“請(qǐng)進(jìn)行簡(jiǎn)單驗(yàn)證,以確保您確實(shí)準(zhǔn)備好進(jìn)行接下來的課程學(xué)習(xí)”
- 增加用戶層級(jí)劃分蔓钟,如普通用戶永票,初級(jí)用戶,中級(jí)用戶滥沫,高級(jí)用戶(或采用鋼琴等級(jí))侣集,設(shè)定不用的用戶擁有不同的課程訪問權(quán)限,變相增加爬取成本
程序?qū)蛹?jí):
- 訪問來源限制兰绣。request請(qǐng)求中增加參數(shù)世分,在解析時(shí)進(jìn)行來源回溯限制等。
- cookie限制缀辩。訪問是否需要強(qiáng)制登錄臭埋,非登錄用戶不可達(dá)。
- 添加證書臀玄。非證書客戶端訪問非法瓢阴,僅擁有證書的客戶端可訪問。存在限制镐牺,歷史版本如何處理炫掐,是否可以強(qiáng)制升級(jí)等。
- 關(guān)鍵性接口訪問限制睬涧,如獲取課程接口募胃,模擬用戶行為,制定訪問策略畦浓,限制單位時(shí)間訪問次數(shù)痹束,例“您在1分鐘內(nèi)已經(jīng)多節(jié)課程,建議您采用我們推薦的課程順序進(jìn)行學(xué)習(xí)讶请。您也可進(jìn)行評(píng)級(jí)自測(cè)祷嘶,我們將給您提供更個(gè)性化的課程推薦”
- 前后端交互數(shù)據(jù)增加動(dòng)態(tài)解析屎媳。前后端動(dòng)態(tài)解析方案協(xié)商,及動(dòng)態(tài)解析方案论巍。前端常見解析方案為js處理
- 訪問鏈接隨機(jī)化烛谊。可視作動(dòng)態(tài)解析的部分嘉汰。
- 服務(wù)端下發(fā)數(shù)據(jù)增加混淆因素丹禀。增加混淆代碼或文本,加大解析難度鞋怀。
- 行為檢測(cè)双泪。增加用戶行為模式判定,設(shè)定用戶行為策略篩查密似。
- 構(gòu)造假數(shù)據(jù)焙矛。猥瑣辦法,讓爬蟲獲取到的數(shù)據(jù)無意義残腌。
- 人工智能防采集村斟。加入人工學(xué)習(xí),采取智能防爬(專業(yè)性要求較高抛猫,實(shí)現(xiàn)成本高)
防爬蟲的幾種方法 參考(https://blog.csdn.net/h330531987/article/details/78362172)