好像很多人写爬虫,都是从登陆学校教务系统开始的。为什么?学校教务系统渣啊,都是明文传输的,而且是200x年写的,没有用到很多现在的技术,所以相对来说容易些。感觉很多学校都是用的清元优软的这个,我们学校还有验证码,稍微高级了一点。
整体思路: 1 对用firefox+httpfox进行抓包,发现验证码是在这里的,
http://172.18.1.77:9002/validateCodeAction.do?random=0.7513717659345102
是用的GET方法。于是可以请求不同的随机数,获得验证码图片,并保存下来。同时发现,请求验证码时,服务器会下发Cookie,这是一个典型的Session,
我把它记录下来,当post提交表单时,在header上加上。
2 用google的开源库tesseract-ocr对验证码进行识别,为了提高识别的准确性,我是将彩色图片进行二值滤波,得到黑白图片,在用subprocess调用系统命令识别。
3 用python的requests库进行提交表单,这里发现post data里面是有hidden data的,也要一并提交,不然会认为是错误。
4 找到成绩的连接,GET成绩,然后用beautifulsoup进行html解析。
这期间是遇到了N个坑,真的是做项目的时候对人提高特别大,会了解很多新的东西。