反网络爬虫以及解决方案
做技術(shù)的或者是互聯(lián)網(wǎng)行業(yè)的人可能都比較清楚,網(wǎng)絡(luò)爬蟲對(duì)于互聯(lián)網(wǎng)的共享是非常大的,其中有超過(guò)一半的流量都是網(wǎng)絡(luò)爬蟲的貢獻(xiàn),如果一個(gè)網(wǎng)站不設(shè)置發(fā)爬蟲機(jī)制,那就會(huì)成為一個(gè)透明的研究所一樣,所有的信息都會(huì)公開化,所以在沒有其他特殊性的情況下,所有的網(wǎng)站都會(huì)設(shè)置發(fā)爬蟲機(jī)制,但是,就算是這樣,網(wǎng)絡(luò)爬蟲還是有辦法進(jìn)行反爬蟲的機(jī)制土坯。今天犀牛代理IP就給大家介紹一部分常見的反網(wǎng)絡(luò)爬蟲以及應(yīng)對(duì)反網(wǎng)絡(luò)爬蟲的突破方法。
??
1.動(dòng)態(tài)頁(yè)面的限制
? ?爬蟲工作者可能會(huì)遇到這樣的尷尬,當(dāng)你抓取下目標(biāo)頁(yè)面之后,你發(fā)現(xiàn),關(guān)鍵信息處一片空白,只有密密麻麻一片的框架代碼,這是因?yàn)樵摼W(wǎng)站的信息是通過(guò)用戶Post的XHR動(dòng)態(tài)返回內(nèi)容信息,解決這種問題就是要通過(guò)開發(fā)者工具(FireBug等)對(duì)網(wǎng)站流進(jìn)行分析,對(duì)內(nèi)容信息進(jìn)行抓取,獲取所需要的內(nèi)容。
? ?那么更復(fù)雜一些的就是對(duì)動(dòng)態(tài)請(qǐng)求進(jìn)行加密,參數(shù)滅有辦法進(jìn)行解析,便也是沒有辦法進(jìn)行抓取。在這樣的情況之下
,可以通過(guò)Mechanize,selenium RC,調(diào)用瀏覽器內(nèi)核,就像真實(shí)使用瀏覽器上網(wǎng)那樣進(jìn)行抓取,抓取的成功率會(huì)大幅度上升,但是抓取速度卻不敢恭維
?
?
? ? 經(jīng)測(cè)試,用urllib抓取拉勾網(wǎng)招聘信息30頁(yè)所需時(shí)間為三十多秒,而用模擬瀏覽器內(nèi)核抓取需要2--3分鐘。
?
?
? ? 2.用戶行為檢測(cè)
?
? 有一些是網(wǎng)站通過(guò)檢測(cè)和分析一些用戶的行為,比如說(shuō)是針對(duì)cookies,通過(guò)檢查cookies來(lái)判斷用戶是不是可以利用和保存的有效客戶,通常是需要登陸的網(wǎng)站,經(jīng)常會(huì)采用這樣的技術(shù)。層次再深的還有,信息驗(yàn)證,部分網(wǎng)站的登陸是需要驗(yàn)證嗎的驗(yàn)證的,就像登陸的時(shí)候,系統(tǒng)會(huì)自動(dòng)分配出驗(yàn)證碼,authenticity_token,authenticity_token會(huì)和用戶提交的登錄名和密碼一起發(fā)送回服務(wù)器。? ??
?
? ?3.IP的訪問頻率被限制
? ??部分訪問是存在著惡意性質(zhì)的,一些平臺(tái)為了防止這種情況的發(fā)生,會(huì)在某個(gè)同一個(gè)IP在單元時(shí)間內(nèi)超過(guò)一定的次數(shù)的時(shí)候,將禁止這個(gè)IP繼續(xù)訪問。對(duì)于這個(gè)限制IP訪問效率,可以使用代理IP的方法來(lái)解決問題。網(wǎng)上有很多代理IP的資源,也有一些是免費(fèi)的,但是免費(fèi)代理的弊端還是不少的,你就例如說(shuō)匿名性就不是特別的號(hào),很容易就會(huì)被賭坊檢測(cè)出來(lái)你在使用代理IP,但是購(gòu)買像是犀牛代理IP的這種,不僅僅可以保障你的質(zhì)量,而且匿名性也好,你可以放心的在任何平臺(tái)上進(jìn)行使用,提高工作效率。
?
?以上簡(jiǎn)單的說(shuō)了三種常見的反爬蟲已經(jīng)反爬蟲的應(yīng)對(duì)方法,一般來(lái)講越高級(jí)的爬蟲被封鎖的機(jī)率救會(huì)越低,但是性能會(huì)比較低一些,成本上相對(duì)也會(huì)比較高一點(diǎn)。當(dāng)成本高到一定的程度了,我們便可以無(wú)需再對(duì)爬蟲進(jìn)行封鎖。
轉(zhuǎn)載于:https://www.cnblogs.com/xiniudaili/p/10298420.html
總結(jié)
以上是生活随笔為你收集整理的反网络爬虫以及解决方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《程序是怎样跑起来的》第一章
- 下一篇: 协程:Greenlet模块、Gevent