1、限制IP單位時間訪問次數還有頻率
背景:沒有哪個常人一秒鍾內能訪問相同網站N次(不管是不是同一個網頁)
解決辦法:一般遇到這種情況我們就放緩采集頻率,不管你寫代碼添加Sleep,或者在我們八爪魚里面設置間隔時間都可以解決
進化1:有些高級點的防采集策略,他甚至監控到每個請求的頻率,如果一直處於同一個頻率,比如一秒一次,他也是會封。
解決辦法:這種情況一般就需要我們在采集間隔里面加上隨機數,每次訪問的頻率相對隨機。
進化2:有些更殘忍的防采集策略,他甚至會監控每IP每天或每時段請求網頁的數量。因為他可以通過數據分析,知道大體上他真實的用戶一般最多會訪問他多少網頁,如果超過,他也照樣封。
解決辦法:這種情況也就只有用多IP或者多服務器來解決了,虛擬出許多不同的終端在訪問,平攤訪問資源。八爪魚在這塊也提供了代理IP池套餐與旗艦版雲服務器集群來保障。
2、驗證碼
背景:驗證碼天生就是一個識別你到底是人還是機器的神器
解決辦法:
這一招是被用爛的一招,現在普通的驗證碼,即使加了混淆,都可以通過圖像識別技術給破解了,所以市面就多了好多詭異的驗證碼,最經典的,應該算是12306的驗證碼了吧。但是再復雜的驗證碼,包括那些中文成語,中文加減乘除之類的,都是有破解之法。因為這世上還有打碼平台在,就是一種人工幫你輸入驗證碼的平台。
八爪魚內置支持絕大多數驗證碼的破解,除了少數的一兩種特別極端,現在滿世界還找不到破解之法,其他都支持。
3、用戶登錄帶COOKIE才能訪問網站內容
背景:通過帳號來限制你訪問的權限
解決辦法:
普通的,我們只需要通過八爪魚采集進行登陸操作,只要你能提供相對應的帳號密碼,八爪魚可以進行模擬操作登陸網站,你就可以進去獲取數據了。如果你沒有帳號,那就一點辦法都沒有了。就像IT桔子,你沒帳號,你只能看到前1000條數據。你只有付費購買他們的SAAS帳號,你才能看到更多數據。
進化一:即使有帳號也不管用
解決辦法:
就像京東的評論,你只能看到最新的1000條。這種時候就必須用上八爪魚的定時采集,我們進行某種頻率的監控,一有新數據就馬上采集下來,保持跟進,保持積累。
4、利用JS加密網頁內容
背景:通過瀏覽器的JS運算出網頁內容結果
解決辦法:
這種招術,在對付HTTP POST請求的時候,是一種增加復雜度與難度的招術。但是八爪魚天生就是對抗這種,八爪魚內置瀏覽器訪問網頁數據,在打開網頁的時候就會去執行JS調用代碼獲取數據,然后再解析網頁數據。所以自帶JS運算,輕輕松松就把這種給繞過去了。
而一般通過代碼或HTTP請求模式的爬蟲技術,是怎么繞都繞不開這種,而通過寫代碼進行采集的同學,他必須把JS加密給破解了。
5、鏈接隨機化
背景:網站頁面鏈接隨機化,同一個頁面有多個鏈接或根據不同情況生成鏈接
解決辦法:
這種情況,一般要求我們從源頭開始訪問,模擬人訪問,比如從首頁,進入到列表,再到內容頁。他內頁鏈接隨機化,首頁地址總不能隨機吧。這種只要以不變應萬變,即可破解。
進化1:利用腳本生成分頁地址
這種情況,在八爪魚瀏覽器面前,也是一點效力都沒有。因為八爪魚是一種模擬人的操作,除非他生成的分頁地址不是要給人訪問的,要不,照樣采。
6、網頁里面增加混淆不可見元素
背景:常規的網頁數據解析為結構化數據,均是通過字符串定位與正則表達式匹配。所以增加混淆代碼或文字,增加你破解的難度,給你增加麻煩。筆者曾見過某網頁解析出來的時候寫着:”不要采,不要采,再采我就又得被叼了“
解決辦法:因為八爪魚主要還是能通過XPATH定位的方式,這種小技倆在XPATH面前,輕松就被繞開了。大不了我們再用字符串替換,把一些混淆的字符段通過某種規則給替換掉即可。畢竟網頁開發者留下混淆代碼也是遵循某種規律留下的。
7、網站隨機出現模板
背景:增加采集難度,同一類頁面,但是多種模板展現
解決辦法:這種情況主要是耐心點,筆者見過分頁列表頁面,單數頁是一種模板,雙數頁是另外一種,或者常規是一種,逢10就另外一種。這種就需要我們在一開始采集的時候,觀察清楚。但這種又很好觀察,一般換了模板,我們就采不到數據。
不可能同一模板,前面一頁采得好好的,后面一頁就不行了。多數是出現在模板不一致導致的。八爪魚內置判斷邏輯,你可以通過頁面不同的特征,引導八爪魚用不一樣的解析來破解。
8、人工智能防采集
背景:互聯網99.9%以上的防采集措施,估計來來回回就這一些招吧,但是另外那0.01%,才是讓人費勁的。像某些大公司,有專門的人工智能防采集團隊。
他們可以通過識別你的網絡請求,不管是走瀏覽器,還是走請求的方式,只要你訪問他們網站的軌跡,不像是一般用戶訪問的軌跡,或絕大多數用戶的軌跡,他們都會進行一些防采集的策略,比如增加驗證碼,或出現假數據等等。
解決辦法:這種時候就要求我們,更加像”人“的操作一樣,去進行采集。比如我們一般會先訪問首頁,然后點點一些位置,拖拉一下,然后再進行列表頁,再看一看,再進入詳情頁等等。這些摸擬人的操作,均可通過八爪魚完成,包括自動下拉多少屏,停留時間,鼠標停留位置等等。
進化一:建立黑IP池
些大型公司,還會建立黑IP池,一旦是池子里的IP進行訪問,馬上拒絕。這一般是出現在境外IP,或一些機房IP,說白就是已經被用爛的IP了。而這時候,優質的代理IP資源,就顯得特別寶貴了。
八爪魚優質代理IP設置界面
在筆者看來,采集與防采集,永遠都是一個矛盾的問題,無法說絕對采集到,或絕對采集不到。在這一行當里面,真正考究的是采集成功與收益的問題,比如說增加驗證碼,IP等方式,均是需要一定的開銷開本,特別在大數據量面前,這個成本有時是非常巨大的。
而網站方,也是通過這一點,來增加你的采集難度采集成本,從而達到一個相對平衡可控的范圍。筆者經手過的項目,有些項目每年需要花費上百萬的IP或驗證碼成本才可獲取到想要的數據,八爪魚能做到的是,以最優的成本,幫你獲取到你想要的數據,而不是0成本。
相關采集教程:
今日頭條數據采集:
http://www.bazhuayu.com/tutorialdetail-1/jrtt-7.html
采集知乎話題信息(以知乎發現為例):
http://www.bazhuayu.com/tutorialdetail-1/zh-ht.html
淘寶網商品信息采集:
http://www.bazhuayu.com/tutorialdetail-1/cjtbsp-7.html
美團商家信息采集:
http://www.bazhuayu.com/tutorialdetail-1/mtsj_7.html
彩票開獎數據采集:
http://www.bazhuayu.com/tutorialdetail-1/cpkjdatacj.html
起點中文網小說采集方法以及詳細步驟:
http://www.bazhuayu.com/tutorialdetail-1/qidianstorycj.html
亞馬遜商品評論采集:
http://www.bazhuayu.com/tutorialdetail-1/ymxspplcj.html
八爪魚——90萬用戶選擇的網頁數據采集器。
1、操作簡單,任何人都可以用:無需技術背景,會上網就能采集。完全可視化流程,點擊鼠標完成操作,2分鍾即可快速入門。
2、功能強大,任何網站都可以采:對於點擊、登陸、翻頁、識別驗證碼、瀑布流、Ajax腳本異步加載數據的網頁,均可經過簡單設置進行采集。
3、雲采集,關機也可以。配置好采集任務后可關機,任務可在雲端執行。龐大雲采集集群24*7不間斷運行,不用擔心IP被封,網絡中斷。
4、功能免費+增值服務,可按需選擇。免費版具備所有功能,能夠滿足用戶的基本采集需求。同時設置了一些增值服務(如私有雲),滿足高端付費企業用戶的需要。