如何通过机械化隐藏的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

上一篇: How to pass a hidden recaptcha with mechanize?

下一篇: Is ReCaptcha too weak?