2010-08-18 65 views

回答

3

这将帮助你登录到一个站点,下载页面,例如:

import mechanize 
br=mechanize.Browser() 
br.open('http://www.yourfavoritesite.com') 
br.select_form(nr=0) #check yoursite forms to match the correct number 
br['Username']='Username' #use the proper input type=text name 
br['Password']='Password' #use the proper input type=password name 
br.submit() 
br.retrieve('https://www.yourfavoritesite.com/pagetoretrieve.html','yourfavoritepage.html') 

该脚本假定您的登录表单页面的第一和输入名称UsernamePassword
您可以通过名字也与选择的形式:

br.select_form(name="thisthing") 

请,适应这个脚本您最喜爱的网站的登录页面。
AlexMartelli指出,这个脚本应该被推广到处理不同的站点的一些配置参数。

+0

urhm,你的表单号码是什么意思?你的意思是喜欢HTML中的表单的名称?和检索做什么? '

' – user377419 2010-08-18 21:16:57

+0

@shorty请参阅我的编辑 – systempuntoout 2010-08-18 21:18:18

+0

还有一件事我该如何知道登录是否成功? – user377419 2010-08-18 21:29:22

1

您最喜欢的每个网站可能都有不同的表单(表单编号以及用户名和密码字段),并且希望每个用户都使用不同的用户名和密码(在许多网站上使用相同的用户名和密码表示如果有的网站被破解,你的身份现在已经被“妥协”了 - 相当混乱!)。因此,您可以硬编码所有这些参数,如在@ systempuntoout的答案中,或者使用所有这些信息为每个站点编写一个小配置文本文件(例如ConfigParser支持的格式),以便您可以在脚本启动时加载配置,并写入“log_me_in”函数,只需一次,它将sitename作为参数并查找并使用依赖于它的参数。

如果你有很多的“最喜爱的网站”,使加载他们所有的信息感知减慢你的启动时间,那么你可能甚至要考虑更灵活地坚持该信息(例如在sqlite表),所以它可以迅速查找一个或几个网站,因为它们的名称是使用的“关键”。