使用python使用selenium提交验证码

时间:2014-10-02 20:21:23

标签: python selenium ocr captcha tesseract

  

这不是关于如何从CATPCHA中检索文本

基本上我的问题是,在我从验证码中提取文本并在提供的框中输入后,并模拟“返回”。使用element.send_keys(Keys.RETURN)的密钥,出现一个警告框,说验证密码错误并且出现了新的验证码,但我可以验证文本是否与验证码相匹配。我也尝试过使用“点按”功能。提交按钮上的操作但没有帮助。

我注意到一个有趣的事情是,如果我将进程自动化到输入验证码文本然后按回车/点击提交,一切正常。所以我认为模拟返回/点击硒的方式存在一些问题。不知道问题是什么。

仅仅为了记录,我使用tesseract OCR和Pytesseract包装器来解码验证码,而我在90%以上的情况下获得了CORRECT文本输出,所以它不仅仅是因为错误的文本。我还检查过使用strip()方法删除任何前导或尾随空格。

1 个答案:

答案 0 :(得分:2)

您的脚本是正确的,您只需在提交最终表单之前插入time.sleep(5) https://gist.github.com/pratyushmittal/68f67c20e4fb6f0cd072/5b9bec7de5e8fadd65a22e729015fc89de6dfca8

Selenium会在页面加载完成后立即提交验证码表单。在当前情况下,网站将其标记为机器人活动并显示错误。

或者,您也可以使用RoboBrowser不使用Selenium(虽然这也需要sleep):https://gist.github.com/pratyushmittal/68f67c20e4fb6f0cd072/c65742ce78631058378c91ee89d0508874ea7ace