gpt4 book ai didi

javascript - 有没有一种方法可以在不使用 selenium 或浏览器客户端的情况下从在线应用程序提交表单?

转载 作者:太空宇宙 更新时间:2023-11-03 16:15:35 25 4
gpt4 key购买 nike

我想为自己构建一个在线应用程序,用于管理自己的库存并将商品提交到本地分类网站。这个本地分类网站没有 API,只有一些看起来很旧的 HTML 表单,其中有多个步骤。

不使用selenium/webdriver,或通过firefox/chrome启动虚拟客户端,有什么方法可以在网页上远程提交表单?由于提交过程是多个步骤,因此它必须支持某种 session 。

我已经使用 webdriver 和 python 完成了它,这似乎是网上类似问题最流行的答案。

最佳答案

一般来说,您应该能够使用任何 HTTP 客户端/库来完成此任务(因为,在幕后,一切都归结为对某些服务器进行正确的 HTTP 调用)。

它的难度在很大程度上取决于您所交互的应用程序的设计方式(糟糕程度)。

在简单的场景中,您需要:

  • 登录并跟踪 session cookie
  • 通过 POST 将数据发送到服务器

这里的示例使用 Python requests,这几乎是当今最好的选择。

让我们开始吧。

首先,您需要检查您的登录页面表单。通常,查看页面 HTML 将为您提供有关如何构建请求的足够信息。

一个例子可以是:

<form action="/login" method="POST">
<input type="text" name="username">
<input type="password" name="password">
...
</form>

为了跟踪 cookie,我们将使用 Session 对象:

import requests
session = requests.Session()

接下来,我们将通过 POST 提交凭据(假设您的应用位于 http://example.com):

response = session.post(
'http://example.com/login',
data={'username': 'your_user', 'password': 'your_password'})

此时,您可以检查 response.ok 以确保一切顺利。如果您检查 session.cookies,您应该会看到您的 session cookie 已被设置。

从现在开始,使用该 session 向您的应用发出的所有请求都将经过身份验证,因此与您从浏览器运行的请求相同。

要提交表单数据,只需开始检查应用程序的工作方式(通过检查表单获取提交 URI 和表单字段名称,就像我们对登录页面所做的那样,然后使用同一 session 通过 POST 提交数据)。

如果页面 HTML 很复杂,使用浏览器开发人员工具观察 HTTP 请求并通过代码复制它们也可能会有所帮助。

关于javascript - 有没有一种方法可以在不使用 selenium 或浏览器客户端的情况下从在线应用程序提交表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38965268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com