python模拟登陆教务系统爬取个人信息及成绩
/* 梳理思路 */
- 通过CDT来了解登录教务系统的过程中,所有的GET/POST等请求内容,以及资源指向
- GET请求了解其详细query参数,POST请求了解其formdata值
- 构建请求,发送数据,处理返回数据
/* 关键代码 */
- 建立请求加上cookie方便后面处理
self.cookies=cookielib.CookieJar();
self.opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookies)); request = urllib2.Request(self.loginUrl, self.postdata);
result = self.opener.open(request);
html = result.read();
/* 问题处理 */
- 1. 验证码,找到验证码连接直接请求将返回的gif保存
pic = self.opener.open(self.checkCodeUrl).read();
self.checkCode = raw_input("Wait a Moment...")
fp = open("/Users/lister/Desktop/lg.gif","wb");
fp.write(pic)
fp.close()2. 不能登陆成功,尝试加上header
/* END OF WORK */
- 在做之前尝试着去思考,去提前想象一下作为浏览器它的整个流程是怎样的,再去顺着思路在浏览器中寻找蛛丝马迹
- 出现bug是在正常不过的,但是能够耐着性子去解决它,这还需要更多的修炼
- 真正的将代码运用在自己需要的地方,并绞尽脑汁实现它,你会收获以外的惊喜,相信我。