如何通过机械化传递隐藏的recaptcha?

时间:2014-08-01 06:17:17

标签: python mechanize recaptcha

我正在尝试使用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()

1 个答案:

答案 0 :(得分:1)

这个网站显然有针对像你这样的机器人的保护措施。如果这是出于学术目的,请邮寄给他们并要求提供数据。

绕过网站保护措施 - 这完全是另一回事,但你应该看看他们如何知道你是一个机器人 - 你有没有运行javascript,你使用机械化用户代理等等。你可能不想和他们一起进入那个战场。