1.关于python以及python的简单爬虫,我的上一篇博客已经写的很清楚,这里不多讲了,这里我提供自己解决的一种识别验证码的方法
2.整体思路:
(1)登录登录页面,获取cookie
(2)根据自己已经有的cookie访问验证码生成的网站
(3)将验证码下载到本地
(4)调用media模板,在终端显示验证码图片,自己输入
(5)将post表单发送出去,完成登录
3.晒出源代码
目前针对苏州大学的选课系统做了测试,测试如下
#!/bin/python
#encoding=utf-8
import urllib2
import urllib
import cookielib
import media#验证码地址
addr="http://10.20.8.203/CheckCode.aspx"
#登录地址
hosturl="http://10.20.8.203/default2.aspx"
#发送的地址
posturl="http://10.20.8.203/default2.aspx"
cj=cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders=[
("User-Agent","Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:19.0) Gecko/20100101 Firefox/19.0")
]#获取cookie
opener.open(hosturl)#根据获取的cookie来访问验证码生成的网站
op=opener.open(addr)
fp=open("2.jpg","wb")
fp.write(op.read())
fp.close()
##########
pic=media.load_picture("2.jpg")
media.show(pic)
code=raw_input("please input the code:")
print "code:%s" %code
media.close(pic)
data={
'Button1': ''
,'RadioButtonList1': 'ѧÉú'
,'TextBox1': '1027401136'
,'TextBox2': '28262826'
,'TextBox3': code
,'__VIEWSTATE': 'dDwtMTg3MTM5OTI5MTs7PhMbjAbINgvvHsvy/Qdjcw3RMlRn'
,'lbLanguage': ''
}#上面的data是firefox的firebug的post表单中获取的
data=urllib.urlencode(data)
print opener.open(hosturl,data).read()
4.效果截图
5.补充说明
python自带的module中没有media,所有每个人要自己下载,还是很推荐使用media,谁用谁知道,非常强大,每个人在转载时,希望表明出处!http://blog.csdn.net/crazyuo/article/details/8680573