是否可以使用Python请求填写表单?

问题描述 投票:0回答:1

我正在制作一个Python库来登录Google帐户,但一直想知道我是否可以在Python请求中做到这一点。我只是想填写要求您提供电子邮件的空白处。这是我到目前为止的代码。由于 Chromebook 上的技术原因,我无法使用 Google API。

import requests

def submit_form(timeout=10, check_status_code=True):
    try:
        google_login = requests.get("https://accounts.google.com/ServiceLogin?elo=1", timeout=timeout, allow_redirects=True, verify=True)
        if check_status_code:
            print(google_login.status_code)
    except requests.exceptions.RequestException as e:
        print(f"An error occurred: {e}")

submit_form(timeout=10, check_status_code=True)
python python-3.x python-requests google-colaboratory google-account
1个回答
1
投票

一般来说,表单只存在于浏览器中。

用户的典型工作流程是用户的浏览器将对包含表单的页面发出 GET 请求。该表单将有一些与之关联的 html,告诉浏览器如何呈现每个表单项以及在哪里提交表单(操作)以及使用哪种数据表示形式(application/x-www-form-urlencoded 或多部分/表单数据)。 用户做他们的事情,然后最终点击提交按钮。 此时,浏览器会转换所有表单数据,并向使用表单中的数据指定的位置提交 POST 请求。

作为Python脚本,你不需要浏览器,如果你已经知道表单的详细信息,那么你甚至不需要GET表单。您所需要做的就是提交 POST 请求。

现在,如果网站对自动化友好,那么它们的形式可能非常一致且易于使用。这实际上意味着他们的表单是一个 API,指定需要提交哪些数据。

但是,有些网站确实不希望机器人使用其表单,因此它们会动态更改表单,因此尝试从中提取 API 很困难。 Goggle 做了很多事情来确保它确实是人在浏览器中填写表单,而不是机器人。但谷歌也让授权机器人可以很容易地使用专用的API。

所以你应该使用他们专用的API,我保证如果你会使用python,你就可以使用他们的API。

© www.soinside.com 2019 - 2024. All rights reserved.