【问题标题】:Python - Fill and submit a HTML FormPython - 填写并提交 HTML 表单
【发布时间】:2011-05-16 17:18:12
【问题描述】:

我想使用 python 在网页上填写并提交表单。我想与之交互的表单有几个使用 JavaScript 填充的下拉框。我查看了 mechanize 库,但它不处理 JavaScript。你能推荐一个与表单交互的替代库/方法吗?

干杯,

皮特

【问题讨论】:

  • javascript 是如何填充它们的?它是执行对 json 或 xml 的请求并从中填充它们还是当场制作它们?从哪里来?当我需要做这些事情时,我只需执行与 javascript 相同的请求并解析响应以获取选择。
  • 据我所知,表单是从页面源代码中可用的 JavaScript 数组填充的。我不知道这个数组是如何填充的。表单有一个“日期”下拉菜单,更改后会更改另一个下拉菜单的值。

标签: javascript python html forms submit


【解决方案1】:
  1. Selenium RC 或 Windmill (http://www.getwindmill.com/)

  2. 检查表单返回的 GET 或 POST 值; 使用urllib2直接提交合成请求。

【讨论】:

    【解决方案2】:

    在您按下提交按钮后,表单有效地将信息发送回服务器(或其他地方)。

    我不知道您将如何直接与表单交互,但您可以像提交表单一样将信息发送回服务器(无需实际提交或物理按压)。

    例如,某些表单在提交表单后,会将表单中指定的参数(及其值)放在 HTTP 请求中 url 的末尾。其他人将参数放在 HTTP 请求的正文中。在 PHP 中,我知道 PHP 会自动为您取出这些参数(放入全局数组中)。

    在这种情况下,您只需在 HTTP 请求中放入您自己版本的参数(名称/值),通过查看表单源代码中有哪些名称/值。

    虽然表单可能会使用 javascript 将其信息发送到服务器...

    对不起,如果这没有意义。

    【讨论】:

    • 表单是否通过 javascript 提交无关紧要,只要它使用“GET”或“POST”请求即可。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 2014-08-09
    相关资源
    最近更新 更多