爬蟲行動被限制?一招破解!
知己知彼百戰不殆,對於競爭對手或者目標消費群體的資料收集,我們樂此不疲。在ip代理盛行的今天,爬蟲技術已經可以被我們充分發揮,海量收集資料,毫不手軟。如果不用代理ip,我們的爬蟲行動往往會受到很多限制,以致最終被完全封鎖掉。有什麼方法能避免呢?往下看。
1.驗證碼
我們在很多網站會遇到,如果請求量大了之後就會遇到驗證碼的情況。最讓人詬病的12306,其實也是一定程度上的防止非正當請求的產生。
對於驗證碼,可以透過OCR來識別圖片,Github上面有很多大神分享的程式碼可以用,可以去看看。
2.Headers限制
這應該是最常見的,最基本的反爬蟲手段,主要是初步判斷你是否是真實的瀏覽器在操作。
這個一般很好解決,把瀏覽器中的Headers資訊複製上去就OK了。
值得注意的是,很多網站只需要userAgent資訊就可以透過,但是有的網站還需要驗證一些其他的資訊,比如知乎,有一些頁面還需要 authorization 的資訊。所以需要加哪些Headers,還需要嘗試,可能還需要Referer、Accept-encoding等資訊。
3.返回偽造的資訊
這個真的是程式設計師何苦為難程式設計師。反爬蟲的工程師也是煞費苦心,一方面是不讓真實的資料被大規模爬取,另一方面也給你後期的資料處理增加負擔。如果資料偽造的好,可能你真的不容易發現自己爬的是假資料,當然只能依靠你後期去清洗這些資料了。
4.減少返回的資訊
最基本的隱藏真實的資料量,只有不斷載入才能重新整理資訊。還有的就更變態,會只給你展示一部分資訊,人都看不到,爬蟲也無能為力。比如CNKI,你每次搜尋能夠得到的內容就是非常有限的。這個貌似沒有很好的解決辦法,但是這麼幹的網站畢竟是少數,因為這種方式,其實在某種程度上是犧牲了一部分真實使用者的體驗。
5.動態載入
透過非同步載入,一方面是為了反爬蟲,一方面也可以給網頁瀏覽帶來不同的體驗,實現更多的功能。很多動態網站都是透過ajax或者JavaScript來載入請求的網頁。
在遇到動態載入的網頁的時候就需要去分析ajax請求,一般情況都能直接找到包含我們想要資料的json檔案。
如果網站給檔案加密,那麼可以透過selenium+phantomJS框架,呼叫瀏覽器核心,並利用phantomJS執行js來模擬人為操作以及觸發頁面中的js指令碼。理論上selenium是比較全能的爬蟲方案,因為這個確實算是真實的使用者行為。除非網站的反爬蟲嚴苛到寧願誤殺的地步。
6.IP限制
限制IP也是很多網站反爬蟲的初衷,有些人隨便寫一個迴圈,就開始暴力爬取 ,確實會給網站伺服器帶來很大的負擔,而這種頻繁的訪問,顯然也不會是真實使用者行為,索性果斷把你封掉。
這種情況,你可以遵守規則,把你爬取的速度變慢,每次爬取停個幾秒就行了。
time.sleep(5)1
當然,你也可以透過不斷換IP的形式來繞過這種限制,網上很多免費的IP資源,你可以自己搭一個IP池,爬到一定的量就切換IP。付費資源則可以選擇一些換IP軟體比如太陽ip軟體來幫助自己完成。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31561288/viewspace-2219785/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何防止網路爬蟲被限制?爬蟲
- 防止爬蟲被限制的三種方法爬蟲
- 導致爬蟲被限制的原因有哪些?爬蟲
- 爬取資料時防止爬蟲被限制的四種方法爬蟲
- 導致爬蟲使用代理IP卻仍被限制的原因爬蟲
- 【使用場景】巧用ip代理解決爬蟲執行被封鎖被限制的難題爬蟲
- 爬蟲爬取資料如何繞開限制?爬蟲
- python爬蟲之快速對js內容進行破解Python爬蟲JS
- Python爬蟲:爬取instagram,破解js加密引數Python爬蟲JS加密
- Python《成功破解簡單的 動態載入 的爬蟲》Python爬蟲
- python爬蟲如何減少ip的限制Python爬蟲
- 爬蟲模擬登入破解無原圖滑動驗證碼爬蟲
- 防止爬蟲被反爬的幾個主要策略爬蟲
- Python爬蟲例項:爬取貓眼電影——破解字型反爬Python爬蟲
- laravel 簡單限制搜尋引擎爬蟲頻率Laravel爬蟲
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- 限制IP到全流程防控,講解網路爬蟲與技術反爬的動態攻防爬蟲
- 3 行寫爬蟲 - 使用 Goribot 快速構建 Golang 爬蟲爬蟲Golang
- 對於反爬蟲偽裝瀏覽器進行爬蟲爬蟲瀏覽器
- 爬蟲是如何被網站識別的?爬蟲網站
- 爬蟲:多程式爬蟲爬蟲
- python多執行緒爬蟲與單執行緒爬蟲效率效率對比Python執行緒爬蟲
- 爬蟲進階教程:極驗(GEETEST)驗證碼破解教程爬蟲
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站
- Python爬蟲入門【9】:圖蟲網多執行緒爬取Python爬蟲執行緒
- 【故障公告】被放出的 Bing 爬蟲,又被爬當機的園子爬蟲
- 通用爬蟲與聚焦爬蟲爬蟲
- 爬蟲--Scrapy簡易爬蟲爬蟲
- 個人利用Python爬蟲技術怎麼掙錢-10萬被動收入Python爬蟲
- 一招教你用Go語言爬蟲快速精準抓取拉勾職位!!!Go爬蟲
- 爬蟲進階:反反爬蟲技巧爬蟲
- 反爬蟲之字型反爬蟲爬蟲
- 匯入Embassy庫進行爬蟲爬蟲
- 爬蟲代理是如何執行的?爬蟲
- 如何對爬蟲程式進行配置爬蟲
- 你的爬蟲為什麼會被檢測到?爬蟲
- 爬蟲爬蟲
- 【爬蟲】爬蟲專案推薦 / 思路爬蟲