Python自动填充Mechanize

时间:2010-08-18 21:01:31

标签: python mechanize

有人可以帮助我或分享一些代码来使用mechanize(http://wwwsearch.sourceforge.net/mechanize/)自动填充登录信息吗?我想制作一个python脚本,以便在我运行时将我登录到我最喜爱的网站。

谢谢!

2 个答案:

答案 0 :(得分: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指出的那样,这个脚本应该被推广到处理具有一些配置参数的不同站点。

答案 1 :(得分:1)

您最喜欢的每个网站可能都有不同的表单(表单编号,用户名和密码字段),并且希望您在每个网站上使用不同的用户名和密码(在许多网站上使用相同的用户和密码意味着如果其中一个这些网站被破解了,你的身份现在已经“无处不在”了 - 非常混乱!)。

所以,您可以硬编码所有这些参数,如@ systempuntoout的答案,或者写一个小配置文本文件(例如以ConfigParser支持的格式),并为每个站点提供所有这些信息,所以您可以在脚本启动时加载配置,并编写一个“log_me_in”函数,只需一次,它将sitename作为参数并查找并使用依赖于它的参数。

如果你有一个很多的“最喜欢的网站”,那么加载他们所有的信息会明显减慢你的启动时间,那么你甚至可以考虑更聪明地保持这些信息(例如在{ {1}}表)因此可以快速查找一个或几个网站,并将其名称作为“密钥”使用。