如何通过机械化隐藏的recaptcha?
我正在尝试使用Python的机械化自动完成学术目的的网站表单。
当一个人完成表格并提交时,没有任何回复。
但是当我通过Python中的机械化来填充表单的控件时,显然有一个隐藏的控件是一个recaptcha。
<HiddenControl(recaptcha_response_field=manual_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()
这个网站显然对像你这样的机器人有保护作用。 如果这真的是出于学术目的邮寄并要求提供数据。
为了避开网站保护措施 - 这完全是另一回事,但你应该看看他们是如何知道你是一个机器人 - 是否有任何JavaScript你没有运行,你是否使用机械化用户代理等。但是他想和他们一起进入那个战场。
链接地址: http://www.djcxy.com/p/21629.html