如何使用 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')
我是机械化的新手,我不太明白它是如何工作的,我尝试了很多教程,但大多数都已经过时并且没有用。
第一个问题,机械化有什么作用?它是在特定的浏览器中填写表单以便最终用户可以看到它,还是在 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')