javascript - 尝试使用 Selenium 和 Python 通过使用框架和 Javascript 的网页登录时出现 ERR_TOO_MANY_REDIRECTS 错误

标签 javascript python selenium iframe web-scraping

我正在尝试自动登录网页以下载每日 xml。我知道我需要有我认为的实际框架网址

http://shop.braintrust.gr/shop/store/customerauthenticateform.asp

我检查表单和字段,然后执行以下操作

browser = webdriver.Chrome('C:\\chromedriver.exe')
browser.get('http://shop.braintrust.gr/shop/store/customerauthenticateform.asp')
print('Browser Opened')
username = browser.find_element_by_name('UserID')
username.send_keys(email)
password = browser.find_element_by_name('password')
# time.sleep(2)
password.send_keys(pwd)

但是我得到一个空白页面,说浏览器做了很多重定向,这意味着无法登录? 我怎样才能登录? 谢谢

最佳答案

ERR_TOO_MANY_REDIRECTS

ERR_TOO_MANY_REDIRECTS (也称为重定向循环)是常见的网站错误之一。通常,此错误是在您的网站最近发生更改、服务器上的重定向配置错误或第三方服务设置错误之后发生的。

此错误与 Selenium 本身没有关系,可以通过手动步骤重现。

ERR_TOO_MANY_REDIRECTS 的原因是,某些原因导致您的网站进入无限重定向循环。本质上,该网站已被卡住(例如 URL 1 指向 URL 2,而 URL 2 又指向 URL 1 ,或者域已​​重定向您太​​多次),并且与其他一些错误不同,这些错误很少会自行解决,并且可能需要您采取措施来修复它。根据您运行的浏览器,此错误有几种不同的变体。


解决方案

检查和修复错误的一些常见方法如下:

  • Delete Cookies on That Specific Site :事实上,Google 和 Mozilla 都建议在错误下方尝试清除您的 Cookie。Cookie 有时可能包含错误数据,从而可能导致 ERR_TOO_MANY_REDIRECTS 错误。即使您在不属于您的网站上遇到错误,您也可以尝试此建议。由于 Cookie 会保留您在网站和其他设置上的登录状态,在这些情况下,只需删除出现问题的网站上的 Cookie 即可。这样您就不会影响您经常访问的任何其他 session 或网站。
  • Clear Browser Cache :如果您想检查是否是您的浏览器缓存,在不清除缓存的情况下,您可以随时以隐身模式打开浏览器。或者测试其他浏览器,看看是否仍然看到 ERR_TOO_MANY_REDIRECTS 错误。
  • Determine Nature of Redirect Loop :如果清除缓存不起作用,那么您需要看看是否可以确定重定向循环的性质。例如,如果某个站点有一个返回自身的 301 重定向环路,这会导致大量错误重定向。您可以跟踪所有重定向并确定其是否循环回自身,或者可能是 HTTP 到 HTTPS 循环。
  • Check Your HTTPS Settings :另一件事要检查的是您的 HTTPS 设置。很多时候,当某人刚刚将其 WordPress 网站迁移到 HTTPS 并且未完成或设置不正确时,就会出现ERR_TOO_MANY_REDIRECTS
  • Check Third-Party Services :ERR_TOO_MANY_REDIRECTS 通常也通常是由 Cloudflare 等反向代理服务引起的。当启用灵活 SSL 选项并且您已经随 WordPress 主机安装了 SSL 证书时,通常会发生这种情况。为什么?因为,当选择灵活时,所有到托管服务器的请求都通过 HTTP 发送。您的主机服务器很可能已经有从 HTTP 到 HTTPS 的重定向,因此会发生重定向循环。
  • Check Redirects on Your Server :除了服务器上的 HTTP 到 HTTPS 重定向之外,最好检查并确保没有任何其他重定向设置错误。例如,一个错误的 301 重定向可能会导致您的网站瘫痪。通常,这些可以在服务器的配置文件中找到。

关于javascript - 尝试使用 Selenium 和 Python 通过使用框架和 Javascript 的网页登录时出现 ERR_TOO_MANY_REDIRECTS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55395181/

相关文章:

python - selenium:如何在Mac上加载本地html文件?

javascript - 如何检测 "device mode"(MVC3 + Bootstrap)

javascript - 在 ng-click 上显示图标

python - 推导 pytorch 网络的结构

python - 在 PyCLIPS 中注册 Python 方法的装饰器

python - 如何使用不变的 URL 抓取多个页面 - python

javascript - 给出错误页面单击 anchor 标记 - 页面加载

javascript - Sketch JS,如何在音频标签上使用 AWS 预签名 URL?

python - 根据匹配键 :value pair 组合字典列表中的字典

c# - Selenium Webdriver - 如何为 Firefox 设置代理到 "auto-detect"