屏蔽您的网络抓取活动看起来像普通的浏览器浏览活动?

时间:2011-06-05 03:44:06

标签: c# web-scraping html-agility-pack

我正在使用Html Agility Pack并且我一直收到此错误。 “远程服务器返回错误:(500)内部服务器错误。”在某些页面上。

现在我不确定这是什么,因为我可以使用Firefox来访问这些页面而没有任何问题。

我有一种感觉,网站本身就是阻止而不是发送回复。有没有办法让我的HTML敏捷包调用更像是从FireFox调用的调用?

我已经在那里设置了一个计时器,所以它每20秒才发送一次。

我还可以使用其他方法吗?

2 个答案:

答案 0 :(得分:6)

设置类似于常规浏览器的User-Agent。用户代理是http客户端(浏览器)传递的http标头,用于向服务器标识自己。

答案 1 :(得分:6)

服务器有很多方法可以检测到刮擦,它实际上只是刮刀和刮刀之间的军备竞赛(?),具体取决于一方或另一方想要访问/保护数据的程度。一些可以帮助你不被发现的事情是:

  1. 确保发送的所有http标头与普通浏览器相同,尤其是用户代理和网址引荐来源。
  2. 按照浏览器的顺序,像普通浏览器一样下载所有图像和css脚本。
  3. 确保所有设置的Cookie随每个后续请求一起发送
  4. 确保根据网站robots.txt
  5. 限制请求
  6. 确保您没有关注任何无跟踪链接,因为服务器可能正在设置蜜罐,他们停止提供您的IP请求
  7. 获取一堆代理服务器以改变您的IP地址
  8. 确保网站尚未开始向您发送验证码,因为他们认为您是机器人。
  9. 同样,列表可以继续,具体取决于服务器设置的复杂程度。