我們在使用Python爬蟲收集信息的時候,經常會被屏蔽,有時候會提示訪問過于頻繁,有時候還會返回一些錯誤代碼等等,那么網站如何知道爬蟲在收集信息呢?
由于互聯網上的爬蟲越來越多,而且大部分流量都是由爬蟲貢獻的,除了搜索引擎,其他爬蟲的訪問對網站并沒有什么好處,同時也會影響網站的正常運行。糟糕的用戶體驗,那他們為什么這么受歡迎。
有時候,如果競爭對手收集數據,分析并得到一些有價值的數據,甚至會加上自己的競爭對手。
因此,對待這類爬蟲的網站會被屏蔽,并且會建立一些反爬蟲機制。爬蟲抓取信息時,如果沒有隱藏,則會打開網站的反爬蟲設置,停止爬蟲的行為。大多數網站都開發了這些反爬蟲:
1.IP的檢測。
也就是說,會檢測到用戶IP訪問的速度。如果訪問速度達到設定的閾值,就會開啟限制,封殺IP,爬蟲停止,無法再次獲取數據。對于ip檢測,可以使用ip模擬器代理ip,切換大量ip地址,突破限制。
2. 驗證碼檢測。
設置登錄驗證碼限制,并設置過快訪問的驗證碼限制。如果您沒有輸入正確的驗證碼,您將無法再次訪問該信息。由于爬蟲可以利用其他工具識別驗證碼,網站不斷增加驗證碼的難度,從普通的純數據研究驗證碼發展到混合驗證碼,或者滑動驗證碼、圖片驗證碼等。
3. 請求頭檢測。
爬蟲不是用戶,訪問時沒有其他特征。網站可以通過檢測爬蟲的請求頭來檢測對方是用戶還是爬蟲。
4. Cookie檢測。
瀏覽器將保存Cookie,因此網站將通過檢測Cookie來識別您是否是真正的用戶。如果爬行器沒有很好地偽裝,它將觸發限制訪問。
這些都是網站知道爬蟲在抓取數據的原因。隨著技術的進步,網站不僅安裝了上述的反爬蟲,如果要抓取大量的數據,還需要突破基于網站上實際設置的反爬蟲的限制。