屏蔽您的網絡抓取活動看起來像普通的瀏覽器瀏覽活動?

c# html-agility-pack web-scraping

我正在使用Html Agility Pack並且我一直收到此錯誤。 “遠程服務器返回錯誤:(500)內部服務器錯誤。”在某些頁面上。

現在我不確定這是什麼,因為我可以使用Firefox來訪問這些頁面而沒有任何問題。

我有一種感覺,網站本身就是阻止而不是發送回复。有沒有辦法讓我的HTML敏捷包調用更像是從FireFox調用的調用?

我已經在那裡設置了一個計時器,所以它每20秒只發送一次網站。

我還能用其他方法嗎?

一般承認的答案

設置類似於常規瀏覽器的User-Agent 。用戶代理是由http客戶端(瀏覽器)傳遞的http頭,以向服務器標識自己。


熱門答案

服務器有很多方法可以檢測到刮擦,它實際上只是刮刀和刮刀之間的軍備競賽(?),這取決於一方或另一方想要訪問/保護數據的程度。一些可以幫助您不被發現的事情是:

  1. 確保發送的所有http標頭與普通瀏覽器相同,尤其是用戶代理和網址引用。
  2. 按照瀏覽器的順序,像普通瀏覽器一樣下載所有圖像和CSS腳本。
  3. 確保所有設置的cookie隨每個後續請求一起發送
  4. 確保根據網站robots.txt限制請求
  5. 確保您沒有關注任何不跟隨鏈接,因為服務器可能正在設置蜜罐,他們停止提供您的IP請求
  6. 獲取一堆代理服務器以改變您的IP地址
  7. 確保網站尚未開始向您發送驗證碼,因為他們認為您是機器人。

同樣,列表可以繼續,具體取決於服務器設置的複雜程度。




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因