Python模拟登录验证码(代码简单)

yipeiwu_com7年前Python基础

废话不多说了,直接给大家贴代码了。

import urllib
import urllib2
import cookielib
def getImg(picurl):
'''
request for random_code picture and cookie 
'''
pic = opener.open(picurl).read()
with open('./verifyImg.jpg','wb') as emptyPic:
emptyPic.write(pic)
def verifyImg(picpath):
'''
TODO
'''
pass
def login(coo):
loginUrl = 'http://jwxt.wust.edu.cn/whkjdx/Logon.do?method=logon'
data = {'USERNAME':'*****', 'PASSWORD':'*****', 'RANDOMCODE':coo}
#encode the postData
postData = urllib.urlencode(data)

user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
header = {'User-Agent':user_agent,'Referer':'http://jwxt.wust.edu.cn/whkjdx/framework/main.jsp'}
#generate a Request with url,postData headers and cookie
request = urllib2.Request(loginUrl, postData, headers = header)
#post data
content = opener.open(request)
#get html file
mainUrl = 'http://jwxt.wust.edu.cn/whkjdx/framework/main.jsp'
mainContent = opener.open(mainUrl).read()
print mainContent 
if __name__ == '__main__':
cookie = cookielib.CookieJar()
handler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(handler)
picurl = 'http://jwxt.wust.edu.cn/whkjdx/verifycode.servlet'
getImg(picurl)
#verifyImg(picpath) 
randomCode = raw_input('Plz input teh randomcode:')
login(randomCode)

以上代码大家看起来很容易吧,有不明白的地方欢迎留言,我会在第一时间和大家取得联系的。在此【听图阁-专注于Python设计】小编祝大家新年快乐。

相关文章

用python写测试数据文件过程解析

用python写测试数据文件过程解析

这篇文章主要介绍了用python写测试数据文件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 f是指向文件的指针,r是转义字...

浅析Python中的序列化存储的方法

在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict: d = dict(name='Bob', age=20, score=88) 可以随时修改变量,比如把na...

python smtplib模块自动收发邮件功能(一)

python smtplib模块自动收发邮件功能(一)

自动化测试的脚本运行完成之后,可以生成test report,如果能将result自动的发到邮箱就不用每次打开阅读,而且随着脚本的不段运行,生成的报告会越来越多,找到最近的报告也是一个比...

Python中的 ansible 动态Inventory 脚本

Python中的 ansible 动态Inventory 脚本

1.Ansible Inventory  介绍; Ansible Inventory 是包含静态 Inventory 和动态 Inventory 两部分的,静态 Invento...

urllib2自定义opener详解

urllib2.urlopen()函数不支持验证、cookie或者其它HTTP高级功能。要支持这些功能,必须使用build_opener()函数创建自定义Opener对象。 复制代码 代...