【发布时间】:2010-08-18 21:01:31
【问题描述】:
有人可以帮助我或分享一些代码以使用机械化 (http://wwwsearch.sourceforge.net/mechanize/) 自动填写登录信息吗?我想制作一个 python 脚本,在我运行它时让我登录到我最喜欢的网站。
谢谢!
【问题讨论】:
有人可以帮助我或分享一些代码以使用机械化 (http://wwwsearch.sourceforge.net/mechanize/) 自动填写登录信息吗?我想制作一个 python 脚本,在我运行它时让我登录到我最喜欢的网站。
谢谢!
【问题讨论】:
这将帮助您登录一个站点并下载一个页面,例如:
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')
此脚本假定您的登录表单是页面的第一个,输入名称为 Username 和 Password。
您还可以按名称选择您的表单:
br.select_form(name="thisthing")
请将此脚本改编为您最喜欢的网站登录页面。
正如 AlexMartelli 所指出的,这个脚本应该被泛化以处理具有一些配置参数的不同站点。
【讨论】:
<form action="bleh.php" name="thisthing"/>
您最喜欢的每个网站可能都有不同的表单(表单编号、用户名和密码字段),并且希望您在每个网站上使用不同的用户名和密码(在许多网站上使用相同的用户名和密码意味着如果其中一个网站被破解,你的身份现在“无处不在”——一团糟!)。
因此,您可以硬编码所有这些参数,如@systempuntoout 的回答,或者为每个站点编写一个包含所有这些信息的小配置文本文件(例如以ConfigParser 支持的格式),以便您可以在脚本启动时加载配置,并编写一个“log_me_in”函数,只需一次,它将站点名称作为参数并查找并使用依赖它的参数。
如果您有很多“最喜欢的网站”,因此加载他们的所有信息会明显减慢您的启动时间,那么您甚至可能需要考虑更巧妙地保留这些信息(例如,在 @ 987654322@ 表),因此可以快速查找一个或几个以名称作为“键”的站点。
【讨论】: