首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么每次使用Selenium时我都会收到429个错误,而在bstn.com上正常浏览时却没有一个错误?

为什么每次使用Selenium时我都会收到429个错误,而在bstn.com上正常浏览时却没有一个错误?
EN

Stack Overflow用户
提问于 2022-03-25 19:28:09
回答 1查看 897关注 0票数 0

在堆栈溢出和其他页面上搜索了几个小时之后,我还没有找到任何解决问题的方法。我想通过Python和ChromeDriver浏览页面ChromeDriver。

当使用像Firefox或Chrome这样的普通浏览器访问页面时,它打开时不会出现任何问题。但是,当使用Selenium时,它会得到一个白色屏幕页面。我的脚本已经包含了数百次在StackOverflow上找到的标准过程:

代码语言:javascript
运行
复制
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument('--disable-blink-features=AutomationControlled')

我还对每个请求使用旋转和更新用户代理。

进一步的调查表明服务器似乎抛出了一个429错误。通常情况下,429表示已经发出了太多的请求,但是由于我只尝试了不到10次,而且在正常的浏览器上它仍然工作,这似乎不是问题所在。

再看看Chromes Network -> Header选项卡,会发现抛出429错误的服务器是Cloudflare,因此,Cloudflare似乎以任何方式参与其中。我比较了成功连接(图片右侧)和左侧429错误连接的请求头。标头比较

唯一不同的是一个稍微大一点的cookie集(在发出请求之前删除了所有cookie)、一个引用头、包含相同来源的sec-fetch站点值和sec-fetch-user: 1。使用名为selenium的工具添加/更改此头信息,似乎不会以任何方式影响我所面临的问题。

我还可以识别一个请求cookie:在普通浏览器上创建的"name":"KP_REF","domain":"www.bstn.com","value":"",并且在使用Selenium时不存在。增加:

代码语言:javascript
运行
复制
driver.add_cookie({"name":"KP_REF","domain":"www.bstn.com","value":""})

也不会改变什么。

我错过了什么或者做错了什么才能访问这个页面?到目前为止,我还没有使用Chrome无头浏览器,我依赖于使用ChromeDriver,因为这是我们应用程序内部的标准。我还坚持使用ChromeDriver,因为ChromeDriverManager似乎不适用于未被检测到的ChromeDriver。

EN

回答 1

Stack Overflow用户

发布于 2022-03-25 20:35:45

HTTP 429错误

当用户在短时间内发送太多请求时,将返回HTTP 429错误。429状态码用于限制速率的方案.

在实时使用中,如果AUT(Application )检测到https://stackoverflow.com/a/70510724/7429447试图在短时间内访问特定页面的频率过高,它将触发限速特性。这种情况下最常见的现象是攻击者多次尝试登录您的站点。

但是,应用服务器也可以使用cookie来标识用户,而不是通过他们的登录凭据来标识用户。请求也可以计算在每个请求的基础上,跨服务器或跨多个服务器。因此,有很多种情况可能会导致您看到这样的错误:

  • 429太多的请求
  • 429错误
  • HTTP 429
  • 错误429 (请求太多)

示例

有几个例子:

代码语言:javascript
运行
复制
HTTP/1.1 429 Too Many Requests
Content-type: text/html
Retry-After: 3600

代码语言:javascript
运行
复制
<html>
    <head>
        <title>Too Many Requests</title>
    </head>
    <body>
        <h1>Too Many Requests</h1>
        <p>I only allow 100 requests per hour to this website per logged in user. Try again soon. </p>
    </body>
</html>

补救措施

有时,这个问题可以自行解决。但是,在某些情况下,插件问题或拒绝服务(DDoS)攻击也会导致这个错误,您需要单独解决这个错误,并且应该一起进行不同的讨论。

欧特罗

最后,为了更清晰和简洁,需要注意的是,网页使用hCaptcha受到保护,不受hCaptcha的影响。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71622173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档