python+PAMIE 实现自动登录

 想写个自动定会议室的程序。

1、会议系统登录后,存在session,提交会议室的订单通过httpwatch拼接后获得链接地址,直接访问链接及可以了

2、如果没有提前登录,就无法提交链接了。使用python+PAMIE实现了了自动登录的过程(登录的链接一直拼接不出来。。)

下面说说这个研究过程。。

1、一开始使用了python +mechanize 。想把页面的表单直接提交。

代码如下,按道理也是可以成功的。但是发现登录页面的form表单居然还嵌套了另外一个form表单,执行的时候会报错nested form(嵌套表单)的错误。

查找相关资料后,把_form.py的相关nested form的判断给注释掉,还需要把mechanize给重装一遍。才执行成功。

成功了但是一直没登录成功,应该mechanize也是通过提交表单的方法,拼接登录链接的吧。但是from1的action不是需要的action所以不成功。。

好吧。。换一种方法。。(各种啰嗦,可忽略,想用mechanize的同学可以看看下面的代码)

br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
br.set_debug_http(True) 
br.open('http://xxx/')
br.select_form(name='form1')//选择表单,如果表单没有名字使用 nr=0,nr=1,n3=2,代表第一个、第二个、第三个
for f in br.forms:
  print f //不知道有哪些表单可以打印出来看看
br.form['username'] = 'xxx'
br.form['password'] = '***'
br.click(name='submit')

 

 主题来了:

使用PAMIE需要下面几步:

本处参考:http://www.cnblogs.com/txw1958/archive/2011/12/17/2291012.html

第一步:把下载到的PAM30压缩文件解压出的两个文件pam30.py、winguiauto.py拷贝到C:\Python30\Lib\site-packages这个目录.

第二步:去下载pywin32,因为PAMIE要用到Win32.com组件.这时候你去下载的pywin32要对应你的python版本.我这里是Python3.0故选择目前最新版本pywin32-214.win32-py3.0.exe进行下载然后安装

第三步:重启计算机

第四步:启动Python shell.输入from PAM30 import PAMIE【注意Python对大小写敏感】

完成上面四步.我这边已经可以成功import PMAIE了.不妨你试试看

下载可以在sourceforge搜搜:

http://sourceforge.net/projects/pywin32/files/pywin32/Build%20217/

对于代码如下:

ie = PAMIE()
ie.navigate('http://xxxx/')
ie.setTextBox('username','xxx')
ie.setTextBox('password','xxx')
ie.clickButton('Submit')
ie.navigate(theMeetingUrl)//登录成功后,发起访问会议室订单的链接
ie.quit()//关闭IE

这样就行啦~~再设置个定时任务,每天就自动定会议室啦~

 

 

 

posted @ 2014-04-27 22:49  nekosense  阅读(938)  评论(0)    收藏  举报