微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C# 任何方式减慢 HtmlWeb.Load() 加载或绕过验证码的速度?

如何解决C# 任何方式减慢 HtmlWeb.Load() 加载或绕过验证码的速度?

我试图抓取一些网页,但因为 HtmlWeb.Load() 太快了(我相信)它阻止了我并要求我做一个验证码。有时我可以加载它,有时我不能。

我想知道是否有任何方法可以减慢速度(也许 htmlweb 有一些内置的方法/属性来做到这一点?或者也许有一种方法可以限制我的应用程序的资源,以便它故意运行缓慢?)。如果这是不可能的,是否有一种简单的方法可以绕过验证码?任何提示/帮助将不胜感激,谢谢。

    <p>
    As you were browsing,something about your browser made us think you might be a bot. There are a few reasons this might happen,including:
  </p>
  <ul>
    <li>You're a power user moving through this website with super-human speed</li>
    <li>You've disabled JavaScript and/or cookies in your web browser</li>
    <li>A third-party browser plugin is preventing JavaScript from running.</li>
  </ul>

解决方法

您认为这是因为您加载单个页面的速度太快,但这根本不是他们告诉您的。您在页面之间切换的速度太快了,无法成为人类。和/或者,正如我怀疑您的应用程序可能正在做的那样,您没有在程序中加载 JavaScript。和/或您不处理 cookie。

这三项中的任何一项或全部都可能是机器人活动的迹象。顺便说一下,你是哪个。所以他们抛出一个验证码,因为他们不希望机器人试图抓取他们的网站。您肯定不会轻易绕过验证码,因此最好的办法是解决他们在消息中提出的实际问题。

  • 将页面加载之间的时间减慢到更适合人类浏览的程度。不过,如果您以非人类的方式浏览他们的整个网站,您仍然可能会被绊倒。
  • 处理他们试图设置的任何 cookie,让您看起来像一个普通用户。来自同一 IP 的网站连续几次无 cookie 命中可能不会触发标记,但几十到数百次会触发。
  • 如果这些都不起作用,也许他们真的坚持要在他们的网站上加载 JavaScript 元素,而您必须找到一种方法让您的应用运行 JavaScript 片段,使其看起来不像您是机器人。

但总而言之,你是一个机器人,他们的系统按预期工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。