如何提交新Google帐户的请求?

时间:2012-10-05 01:07:52

标签: javascript python html urllib

我想创建一个命令行帐户制作者(在python中)。它会使用PIL.Image.Image.show()向您显示ReCapatcha,并在您输入所有信息后将请求提交给Google。

我从来都不擅长JavaScript或HTML,因此我无法在accounts.google.com/SignUp页面上对代码进行右侧或左侧。

我将提交请求的网址是什么,请求是什么?感谢。

2 个答案:

答案 0 :(得分:5)

简单的答案 - 你没有。机器捕手无法绕过。这不是流行的答案,但它是唯一真实的答案。 ReCapatcha的数据存储在服务器上,而不是发送到客户端(显然;这是重点)。我讨厌成为那个人,但你不需要网址或信息,因为你的任务是不可能的。抱歉。

答案 1 :(得分:0)

就像Code Monkey所说,用你现在的方法来实现这个目标是不可能的。但是,可能还有另一种方式。在查询站点之前,不要让用户填写数据,而是让您的程序像普通的Web浏览器一样。

您可以使用urllib.request模块打开帐户创建页面并下载原始HTML。

from urllib.request import urlopen
html = urlopen("https://accounts.google.com/NewAccount").read().decode('utf-8')

从那里,用正则表达式选择ReCAPTCHA图像的URL。

import re
token = re.search("accounts.google.com/Captcha\?ctoken=([^\"]+)", html).group(1)
url = "https://accounts.google.com/Captcha?ctoken=" + token

然后,您可以从URL下载图像并将其显示给用户。

至于实际提交表单,我怀疑您需要使用用户提供的数据设置data urlopen参数,并向另一个URL发出POST请求,但我还没有' t验证了这一点。

我发现Firefox的插件对于这类内容非常有用Tamper Data。它允许您准确查看浏览器正在执行的操作,包括显示POST / GET请求的外观,您正在访问的URL以及其他有用信息。

可替换地:

  • 使用Mechanize库(example
  • 只需打开注册页面的网络浏览器窗口,让您的用户按照Google的意图创建帐户。

我还应该补充一点,我不会宽恕违反Google's TOS创建大量帐户(为了发送垃圾邮件或其他目的)。 Google提供优质服务。请不要滥用它。