Python 如何使用mechanize传递隐藏的recaptcha?

Python 如何使用mechanize传递隐藏的recaptcha?,python,mechanize,recaptcha,Python,Mechanize,Recaptcha,我正在尝试使用Python的mechanize在网站上自动完成一个表单,用于学术目的 当一个人完成表单并提交它时,就没有recaptcha了 但是,当我在Python中通过mechanize为表单填充控件时,有一个隐藏的控件显然是一个recaptcha <HiddenControl(recaptcha_response_field=manual_challenge)> 很明显,这个网站设置了针对像你这样的机器人的保护。如果这真的是出于学术目的,请将其邮寄并索取数据 为了绕过网站保护

我正在尝试使用Python的mechanize在网站上自动完成一个表单,用于学术目的

当一个人完成表单并提交它时,就没有recaptcha了

但是,当我在Python中通过mechanize为表单填充控件时,有一个隐藏的控件显然是一个recaptcha

<HiddenControl(recaptcha_response_field=manual_challenge)>

很明显,这个网站设置了针对像你这样的机器人的保护。如果这真的是出于学术目的,请将其邮寄并索取数据


为了绕过网站保护措施——这完全是另一回事,但你应该了解他们是如何知道你是一个机器人的——是否有你没有运行的javascript,是否正在使用mechanize用户代理等。。不过,你可能不想和他们一起进入战场。

你可以发布你用来执行此操作的代码吗!希望它能帮助解决这个问题。注:我没有包括表格或网站的实际名称。这是我担心的。我接下来的问题是,他们如何确定这是机器人还是人。如果使用mechanize(或其他库)无法直接实现,我计划只使用Java.robot之类的工具,但我不想走这条路。但是,当recaptcha的质询字段是
manual\u challenge
时,它意味着什么?好吧,不是那么难,来自同一主机的多个请求?
import mechanize
import re

#constants
TEXT = "hello world!"

br = mechanize.Browser()
#ignore robots.txt
br.set_handle_robots(False)

br.addheaders = [('User-agent', 'Firefox')]

#open the page
response = br.open("http://somewebsite.com")

#this is the only form available 
br.select_form("form2")

br.form.set_all_readonly(False)

cText = br.form.find_control("text")
cText.value = TEXT

#now submit our response
response = br.submit()
br.back()

#verify the url for error checking
print response.geturl()

#print the data to a text file
s = response.read()
w = open("test.txt", 'w')
print>>w, s
w.close()