首页 > 解决方案 > 有没有办法在不启动浏览器的情况下提交 HTML 表单?

问题描述

我正在尝试在不启动浏览器的情况下提交 HTML 表单。

这是代码。

import requests
r = requests.get('https://www.isi.uu.nl/Research/Databases/DRIVE/download.php')
r.content.decode('UTF-8')

这给了我一堆 HTML,其中包含一个链接

<form enctype="multipart/form-data" action="process_download.php" method="post">\r\n    <P>Please enter your e-mail address: <input type="text" name="usermail"/><input type="submit" value="Send mail" /></P>\r\n</form>

有没有办法在不启动 Python 浏览器的情况下填写内容并提交此表单?

该计划的整个过程将是,

  1. 将请求设置为 URL。
  2. 保持会话
  3. 填写一些内容并自动提交表单,而无需启动浏览器。

标签: pythonhtml

解决方案


提交表单只是一个 HTTP POST 请求。因此,您可以创建一个发布请求,其中请求的主体是usermail=username@example.com,内容类型是application/x-www-form-urlencoded

这相当于从浏览器提交表单。如果表单中有多个值要提交,那么它们&就像 GET 请求的查询参数一样被分隔。


推荐阅读