防止爬蟲採集數據的框架或者策略有哪些?
01-26
最好能說說淘寶之類的如何防止爬蟲採集銷量等數據的..
驗證碼,鏈接隨機化,時間戳,驗證身份,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
這種使用了雲鎖 的怎麼處理???模擬瀏覽器登錄也不行。
推薦閱讀: