如何使用 Mechanize 在 Python 中填写 HTML 表格

How to use Mechanize to fill HTML forms in Python

我是机械化的新手,我不太明白它是如何工作的,我尝试了很多教程,但大多数都已经过时并且没有用。

第一个问题,机械化有什么作用?它是在特定的浏览器中填写表单以便最终用户可以看到它,还是在 Mechanize 浏览器中制作最终用户看不到的所有内容?

我正在尝试让 Mechanize 填写表单,表单在重新加载页面后更改输入名称,如何按数字更改其值?

import mechanize 

br = mechanize.Browser() 

br.set_handle_robots(False) 

br.addheaders = [("User-agent","Mozilla/5.0")] 

gitbot = br.open("https://arkhamnetwork.org/community/register") 

br.select_form(nr=0)

br["user[username]"] = "username" 

br["user[email]"] = "email"     

br["user[password]"] = "password"

sign_up = br.submit()

执行代码后出现错误: NameError: name 'username' is not defined

我想填写页面上的所有表格,但不使用输入姓名,我该怎么办?

我找到了解决方案:

表单实际上包含控件,这就是我需要 select 表单的原因。

在此特定网站上填写表格的代码:

import mechanize 

br = mechanize.Browser() 

response = br.open("https://arkhamnetwork.org/community/register")

br.addheaders = [("User-agent","Mozilla/5.0")] 

gitbot = br.open("https://arkhamnetwork.org/community/register") 

br.select_form(nr=1)

br.set_all_readonly(False)

br.form.set_value("test", nr=0)

br.method = "POST"

response = br.submit()

print response.geturl('http://arkhamnetwork.org/community/register/register')