我是机械化的新手,我不太明白它是如何工作的,我尝试了很多教程,但是大部分教程已经过时而且没有用。
第一个问题是,Mechanize会产生什么影响?它是否填充特定浏览器中的表单,以便最终用户可以看到它,或者它是否使最终用户无法看到的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
我想填写页面上的所有表格,不使用输入名称,我该怎么办?
答案 0 :(得分:1)
我找到了解决方案:
表单实际上包含控件,这就是我需要选择表单的原因。
填写此特定网站上的表单的代码:
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')