防止爬蟲採集數據的框架或者策略有哪些?

最好能說說淘寶之類的如何防止爬蟲採集銷量等數據的..


驗證碼,鏈接隨機化,時間戳,驗證身份,cookies,token,如果用戶打開一個頁面要2秒,你就寫個js sleep(2000),acclog識別那些1秒10次的請求源幹掉,打開了第一個頁面才產生第二個頁面的鏈接,只要你知道真實請求是什麼樣,就能知道什麼是「異常」


說實話要想爬蟲是防不了的,1樓說了那麼多策略,幾乎都被我解決過。

驗證碼?當年爬騰訊微博的時候,被驗證碼煩死,的確是個好策略,但是最後還是解決了。我拿到你的驗證碼圖片,然後通過圖像識別驗證碼,拿回驗證碼的內容,直接post。

cookie,token基本上沒什麼用,難度還不如驗證碼。

至於鏈接隨機化,sleep。我只要通過模擬瀏覽器就能全部解決。只要瀏覽器能打開的,沒有爬不到的。

還有限制頻率,我在進程里等待一段時間就可以了。限制IP,用代理IP輕鬆解決。

打開一個頁面跳轉到另一個頁面,我直接那你第一個request的location解決。

以及淘寶爬蟲,真的很簡單。


給假數據,這招最狠


只要數據價值高,又不想給正常用戶添太多麻煩,就沒啥好辦法可以防。

大不了買上幾萬個肉雞分散式抓取,或者租上幾十條ADSL線路撥號換IP抓取。


防爬蟲的重點在於讓爬蟲成本和收益達到不平衡

之前的回答也有說到,只要頁面能夠正常打開用戶能夠使用,就沒辦法防止爬蟲採集

除非你頁面上不顯示(例如天貓商品評論信息只顯示一百頁,之後的就是不顯示)

所以最後還是回到採集成本和獲取數據的價值的比較

防爬蟲其實說到底就是提高數據採集的成本,如果採集成本超過了數據價值,爬蟲程序就會減少

假如你的一條數據價值0.1元,採集成本是ip,一天3-5塊/台機器(adsl全國混撥大致這個價格)加機器成本和人工成本,但是只要一天能夠採集到10000+以上的數據就是絕對不虧的。

當然上面是我隨口說的,中間還會涉及到很多別的東西。

所以不妨從這個角度來思考如何搭建防爬蟲的框架。


http://qy1.sfda.gov.cn/datasearch/face3/base.jsp?tableId=25tableName=TABLE25title=%B9%FA%B2%FA%D2%A9%C6%B7bcId=124356560303886909015737447882

這種使用了雲鎖 的怎麼處理???模擬瀏覽器登錄也不行。


推薦閱讀:

Kaggle案例:2016美國大選
怎樣學習能夠進階數據挖掘?
手把手教你批量讀取數據文件

TAG:數據安全 | 數據分析 | 數據採集 | 搜索引擎 |