想写个自动定会议室的程序。
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 inbr.forms:print f //不知道有哪些表单可以打印出来看看
br.form['username'] = 'xxx'br.form['password'] = '***'br.click(name='submit')
主题来了:
使用PAMIE需要下面几步:
本处参考:
第一步:把下载到的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搜搜:
对于代码如下:
ie =PAMIE()
ie.navigate('http://xxxx/')
ie.setTextBox('username','xxx')
ie.setTextBox('password','xxx')
ie.clickButton('Submit')
ie.navigate(theMeetingUrl)//登录成功后,发起访问会议室订单的链接
ie.quit()//关闭IE
这样就行啦~~再设置个定时任务,每天就自动定会议室啦~