javascript - python mechanize - 提交自定义表单

标签 javascript python forms mechanize

我正在连接一个需要使用 mechanize 登录的页面。它在首页上使用了一些 javascript,这使得直接使用 mechanize 变得更加困难。我知道我必须提交什么表格才能登录 - 总是由 js 生成的表格,每次都一样。我怎样才能让 Mechanize 只提交一个不在页面上的自定义表单?基本等同于this perl problem但在 Python 中。

最佳答案

(注意:这最近又出现了,我现在真的让它工作了。)

这似乎可行:

br.open(URL)
res = mechanize._form.ParseString(FORM_HTML, BASE_URL)
br.form = res[1]
#continue as if the form was on the page and selected with .select_form()
br['username'] = 'foo'
br['password'] = 'bar'
br.submit()

URL 是访问站点的完整 URL。 BASE_URL 是 URL 所在的目录。FORM_HTML 是任何具有 form 元素的 HTML,例如:

<form method='post' action='/login.aspx'>
    <input type='text' name='username'>
    <input type='text' name='password'>
    <input type='hidden' name='important_js_thing' value='processed_with_python TM'>
</form>

出于某种原因,mechanize._form.ParseString 返回两种形式。第一个是对基本 URL 的 GET 请求,没有任何输入;第二,来自 FORM_HTML 的正确解析的表单。

关于javascript - python mechanize - 提交自定义表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4928181/

相关文章:

python - 针对另一个列表子项搜索列表项

javascript - 无法读取null的属性 'indexOf',估计是react生命周期问题

javascript - 用作事件处理程序和初始化的 jQuery 函数

Javascript - 我应该如何计算循环的结果?

jquery - 检查是否填写了任何表单元素

html - Bootstrap Multicolumn Form-horizo​​ntal Styling only one one col-

php - 重定向后重新填写表格

javascript - 如何从Ajax返回字符串中解析参数

python - 通过多行从 python 中提取

python - 如何从列表中删除索引列表