我正在尝试使用Python的机械化自动完成网站上的表单以用于学术目的。
当一个人完成表格并提交表格时,就没有重新收回。
但是当我通过Python中的mechanize填充表单的控件时,有一个隐藏的控件显然是一个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()
答案 0 :(得分:1)
这个网站显然有针对像你这样的机器人的保护措施。如果这是出于学术目的,请邮寄给他们并要求提供数据。
绕过网站保护措施 - 这完全是另一回事,但你应该看看他们如何知道你是一个机器人 - 你有没有运行javascript,你使用机械化用户代理等等。你可能不想和他们一起进入那个战场。