如何使用Mechanize在Python

时间:2016-04-07 17:39:18

标签: python mechanize

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

第一个问题是,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

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

1 个答案:

答案 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')