我想制作一个命令行帐户制造商(在 python 中)。它会向您显示 ReCapatcha 的使用情况PIL.Image.Image.show()
,并在您输入所有信息后将请求提交给 google。
我从来都不擅长 JavaScript 或 HTML,所以我无法在accounts.google.com/SignUp页面上对代码进行左右设置。
我将提交请求的 url 是什么,它将是什么请求?谢谢。
我想制作一个命令行帐户制造商(在 python 中)。它会向您显示 ReCapatcha 的使用情况PIL.Image.Image.show()
,并在您输入所有信息后将请求提交给 google。
我从来都不擅长 JavaScript 或 HTML,所以我无法在accounts.google.com/SignUp页面上对代码进行左右设置。
我将提交请求的 url 是什么,它将是什么请求?谢谢。
The simple answer - you don't. There is no way around the bot-catcher. This is not the popular answer, but it is the only true one. Data for the ReCapatcha is stored on the server, not sent to the client (obviously; this is the whole point). I hate being that guy, but you don't need the url or the message because your task is impossible. Sorry.
就像 Code Monkey 说的那样,使用您当前的方法是不可能实现这一点的。但是,可能还有另一种方式。与其让用户在查询站点之前填写数据,不如让您的程序表现得像一个普通的网络浏览器。
您可以使用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 请求,但我尚未验证这一点。
我发现对这类东西非常有帮助的 Firefox 插件是Tamper Data。它可以让您准确地看到您的浏览器在做什么,包括显示 POST/GET 请求的样子、您正在访问的 URL 以及其他有用的信息。
或者:
我还应该补充一点,我不容忍通过创建大量帐户(出于垃圾邮件或其他目的)违反Google 的 TOS 。谷歌提供了很棒的服务。请不要滥用它。