python带cookies访问

本人是运维一枚,使用次数最多的就是Vandyke的SecureCRT.在win系统下面有各种大牛破解的scrt版本,但是在咱debian下面 就只能使用官方正版的,但是因为scrt是收费的,而且还死贵死贵($99), 咱这种中下农,搞不起这货, 只能使用它的免费30天,时间一到,要么就是删除它的认证文件,要么就是卸载原有的,然后重新安装, 非常麻烦…

于是就想着能不能通过cron自动下载安装, 于是就有了第一版本的Vandyke_update.py 脚本,通过抓包分析到Vandyke 的post数据,通过urllib2提交,并下载, 跑了一年都挺好的,

但是今天有同事(ubuntu)使用我的脚本自动更新的时候,发现无效了,返回信息提示”Bad product id”,然后通过chrome的开发者工具跟踪了一下,发现post数据的字段改变了. 不再提供”sid”这个字段(每次Vandyke用户登录之后都会在cookie中分配这个这个id,是不变的),只好重新分析它post内容,

看见它post内容变的非常简单,只有两个字段:

    pid(product id)status

尝试了几次,发现它现在所有认证信息都是从cookies里面获取的, 咱就只能模拟登录,保留cookies,带着cookies访问它的下载页面

模拟登录,及带着cookies访问其他页面代码如下

import urllib2,urllibimport cookielibcj = cookielib.CookieJar()opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))urllib2.install_opener(opener)post = urllib.urlencode({'pid':'securecrt_ubuntu1264_deb_71',\                          'username':'eleven.i386@gmail.com',\                          'password':'*******',\                          'status':'4'})post2 = urllib.urlencode({'pid':'securecrt_ubuntu1264_deb_71',\                          'status':'self'})req = urllib2.urlopen('https://secure.vandyke.com/cgi-bin/account_verify.php',post)req2 = urllib2.urlopen('https://secure.vandyke.com/cgi-bin/download.php',post2)

这是一段测试用的代码,请无视它那掉节操的变量名称,实在不想花费脑细胞在测试代码的变量名称上(虽然正式代码的变量名称一样无节操)

参数说明

第一个post, 用于做登录. 提交用户名和密码,

第二个post,用于发送下载请求,提交请求资源的id,和status(这玩意一直不知道干嘛的),请求资源的文件名称,在第一个post的respose header的Content-Disposition字段里面,

python带cookies访问

相关文章:

你感兴趣的文章:

标签云: