2013-05-05 95 views
0

我有一个python脚本from here从课程网站下载网页内容下载网站的内容:无法使用机械化

from mechanize import Browser 
b = Browser() 
b.open("https://wiki.engr.illinois.edu/display/cs498cc/Home") 
b.select_form(nr=0) 
b["user"] = "myusername" 
b["passwrd"] = "blabla" 
b.submit() 

response = b.response().read() 
if "Salve <b>johnconnor</b>" in response: 
print "Logged in!" 

我得到一个错误:

mechanize._form.ControlNotFoundError: no control matching name 'user' 

我不是确定如何做到这一点,因为我刚刚开始学习python并发现该库。 我试过用wget使用--user = X --password = Y标志,但它只下载登录页面!

回答

2

表单元素有不同的名称:

<input type="text" name="os_username" id="os_username" class="text " data-focus="0"> 
<input type="password" name="os_password" id="os_password" class="password "> 

变化useros_usernamepasswrdos_password和它可能工作。

+0

无果“无控制匹配名称'os_username'”:/ – Siddhartha 2013-05-05 08:49:07

+0

@Siddhartha:第一种形式是搜索框。将'b.select_form(nr = 0)'改为'b.select_form(nr = 1)',它应该可以工作。 – Blender 2013-05-05 08:51:00

+0

它的工作原理!脚本成功运行。所以我现在登录,如何获取网站的内容?我没有在谷歌上找到任何东西,我想我应该使用b.retrieve()?谢谢! – Siddhartha 2013-05-05 09:00:41