【发布时间】:2021-11-27 02:01:28
【问题描述】:
我正在使用 Python 和 Selenium 来自动化这个网站:https://prenotami.esteri.it
我制作的脚本填写了一个表格,然后单击一个按钮前进到下一页。这些操作是使用 Selenium 的 find_element_by_xpath() 函数执行的。最近网站新增了reCAPTCHA,点击按钮后会弹出,必须完成后才能进行。
我已经编写了一个 Python 脚本,它能够通过使用音频选项来超越这种类型的验证码。但是,在这个特定的网站中,我找不到 reCAPTCHA 的音频按钮的 xpath。虽然有一个包含 reCAPTCHA 的 iframe,但里面似乎没有任何内容。
在附上的第一张图片中,您可以看到该网站的 reCAPTCHA 在 HTML 中的样子,与在第二张图片中可见的其他网站相比,在 iframe 中可以看到 #document。
我的目的是使用无头 Chrome 运行这个程序,所以我不能在 pyautogui 提供的任何鼠标控制功能中进行中继。
我一直在为这个问题摸不着头脑,所以任何建议都是有用的。谢谢!
编辑: 经过一番研究,我发现这种不需要勾选“我不是机器人”复选框的 reCAPTCHA 被称为“隐形 reCAPTCHA”。只有在检测到的活动可疑(例如点击太快)时才会弹出验证码。我尝试添加随机等待和动作来模仿人类行为,但经过一些尝试后验证码仍然出现。由于我认为没有办法避免验证码 100% 出现,因此如何使用 Selenium 的 find_element_by_xpath() 函数单击按钮的问题仍然相同。将此作为注释,以防有人发现它有用。
【问题讨论】:
-
我希望自动化同一个网站(不是阿根廷版,而是巴西版)。你成功了吗?
-
我还没有时间继续这个项目,但我已经尝试了接受的解决方案,以便与验证码进行交互,并且效果很好。如果您将其与 VPN 一起使用,您应该能够将其自动化。
标签: python html selenium automation recaptcha