首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无聊的钢镚的python学习之路

目标实现:通过网络爬虫爬取教务网的成绩;能够自动评教(全部好评,无评语);通过提前存入的课程代码,选取课程;

已实现目标:通过网络爬虫爬取教务网的成绩;

目标分析:

第一:实现模拟登录。

第二:跳转到指定网页并进行网页解析。

第三:打印输出。

通过页面的分析,需要做到以下事情:

第一:接收Cookie并维持对话

第二:识别验证码

第三:构建请求头和需要提交的表单

第四:请求指定网页

第五:进行网页解析找出需要的成绩信息

第六:格式化输出

代码展示:

第一步:访问教务网登录页面,用resquets的session方法维持会话(会帮我们获取和管理Cookie);用BeautifulSoup解析得到两个验证参数。

第二步:同样利用resquests的session方法获取验证码,教务网的验证码为一个url链接(维持会话帮助我们获取的验证码为我们刚刚访问页面展示的,即和得到的验证参数相匹配);由于验证码比较简单,我采用的是利用tesserocr进行自动识别验证码。

第三步:从外部获得学号,密码等信息,利用第一步得到参数,同样利用requests的session方法提交post请求,实现模拟登录。

第四步:利用requests的session的方法get到成绩查询页面,并传入网页分析函数,接着传入格式化输出函数;

第五步:利用BeautifulSoup对网页进行解析,并利用print函数,进行格式化输出。

在这次目标的达成中,遇到了各种各样的错误,从第三方库安装和调用问题到网页请求失败。在经过不懈的努力,终于勉强能够达成第一个目标了,可能在上述代码中还存在不合理的地方,希望大家能够留言指出,谢谢!!!(虽然可能没有人看)我会持续对这个代码的功能进行完善。终极目标是能够根据教务系统的学业对比和评教实现全自动选课!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181230G16THU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券