3

我有一个可以使用网页界面管理的设备。

设备地址可以是:

http://10.18.25.25/restart

在网页中使用提交按钮:

<form action="/restart/restart" method="POST" name="restartForm">
                            <input type="submit" value="OK">
                        </form>

我正在尝试使用 python 模块请求来自动单击该网页上的按钮。

from urllib3 import requests
r = requests.get('http://10.18.25.25/restart', auth=('username', 'password'))

有任何想法吗??

4

2 回答 2

3

根据站点的不同,您可能会或可能无法通过对 /request/request 的适当 HTTP POST 请求来模拟表单的操作,但在大多数实际示例中,我看到有额外的 cookie 和 javascript 与形式使这种方法即使不是不可能也极其困难。

但是,请查看 Selenium 库,它提供了通过 Python 以编程方式操作浏览器的命令。我知道您的具体问题是针对 requests 模块的,在您的情况下这可能就足够了,但在一般情况下,Selenium 可能值得一试。

于 2014-10-15T15:00:01.157 回答
2

根据提供的信息,我假设您访问了一个http://10.18.25.25/restart/包含表单的页面,以在提交时重新启动您的设备。

您定义的操作出现在/restart/restart表单上的 URI 中。所以在同一个 URI 上做一个请求:

r = requests.post('http://10.18.25.25/restart/restart', auth=('username', 'password'))
于 2014-10-15T14:54:57.153 回答