前几天看到网上有教程爬正方教务处的信息,心血来潮想做一个课程提醒功能微信号。加上刚好看到itchat框架索性就自己动手开发了起来。

总的来说这个小玩具分两大块操作,第一是爬虫抓取课程,第二是线程定时触发。这篇文章主要是针对爬虫模拟登录的操作。接下来进入开发过程:

运行环境:

python 2.7

itchat (1.2.19)

beautifulsoup4 (4.5.1)

requests (2.7.0)

window 10(64bit)

爬虫——模拟登陆由于课程每个学生都不一样且正方教务系统需要登陆才能获取学生的课程信息,第一步要做的便是模拟学生的登陆。

首先打开Firefox调试工具正常登陆,观察浏览器都做了post,get操作。

其中的一个post请求引起了我们的注意,其所带的参数如下:

查看对应登陆页面的标签id,同时我们注意到正方系统在第一次刷新的时候给我们分配了一个SessionId,所以在模拟登陆的时候需要将Cookie一起带上。

同理我们可以得到数据分别代表的是什么意义,这样子就可以通过发送相同的数据包达到我们模拟登陆目的,代码如下:

data = {

"__VIEWSTATE": VIEWSTATE,

"txtUserName": self.txtUserName, # 学生学号

"TextBox2": self.TextBox2, # 学生账号密码

"txtSecretCode": code, # 验证码

"RadioButtonList1": self.RadioButtonList1,

"Button1": "",

"lbLanguage": "",

"hidPdrs": "",

"hidsc": ""

}

那么接下的任务就是考虑如何获取对应数据包的值了。

首先__VIEWSTATE的值需要我们解析html标签获得,其次学生学号和学生密码则由用户自己填写,接着则是对验证码的处理了。

验证码的输入可以采用机器学习自动填写,也可以用人工输入。

在这里由于机器学习算法不是很懂,我们就采用人工输入......则接下来我们需要做的就是:解析html页面获取__VIEWSTATE的值

下载验证码图片

人工输入验证码图片

def get_VIEWSTATE(self, html):

try:

soup = BeautifulSoup(html,"html.parser")

VIEWSTATE = soup.find('input',

attrs={'name''__VIEWSTATE'})['value']

return VIEWSTATEexcept

Exception, e:

print u'网络未连接'

如何下载验证码图片呢首先需要通过解析html页面获取验证码图片的url

接着访问验证码的url将内容写入本地文件并保存。

通过人工识别的方法,将验证码输入到程序中,完成data数据的包装。

经过多次实验发现图片的url刷新之后固定不变,于是我们直接使用固定地址。

def get_checkcode(self):

code_url = 'http://jw.jluzh.com/CheckCode.aspx'

captcha_content = self.session.get(code_url).content

with open('CheckCode.gif', 'wb') as fp:

fp.write(captcha_content)

return raw_input('CheckCode : ')

当数据包装完成后我们只需将Cookie,data,消息头全部打包好发送出去就好了。

self.session = requests.session()

Loginresponse = self.session.post(self.url, data=data)

到此模拟正方教务系统登陆就大功告成了,具体的源码在github上面,欢迎关注哟

课程提醒功能现在已经完成了,额外又加多一些功能,例如提醒女朋友吃饭什么的,效果拔群。

接下来更的文章主要是讲述对教务处的课程信息进行处理,以及如何让itchat定时发送消息等。如果有什么好的功能想法可以私信我哟。

微信python课_微信课程提醒助手———python相关推荐

  1. 猿辅导的python课_每天自学俩小时Python,改变命运足矣

    每天自学俩小时Python,改变命运足矣 清华学姐推荐的Python视频400集,拿走不谢 .

  2. 如何微信链接自定义_微信链接自定义

    微信在分享第三方网站是不显示缩略图和描述的,如下图所示 微信链接自定义_微信链接自定义 要解决这个问题必须调用微信JS-SDK接口,下面讲一下如何调用接口. 第一部分 准备步骤 注册微信公众号. 通过 ...

  3. 跳一跳python刷分_微信跳一跳python怎么刷分 python脚本刷分技巧

    随着微信跳一跳流行,很多小伙伴都想要得到高分,今天小编为大家带来的是通过python脚本来实现刷分,比较适合一些更专业人员来进行刷分.6JE亚风软件站_提供免费绿色软件下载_手机电脑软件下载 微信跳一 ...

  4. 跳一跳python开挂_微信跳一跳物理外挂—教​你用 Python 来玩微信跳一跳

    微信跳一跳出物理外挂了,教你用 Python 来玩微信跳一跳,最高可跳 4000 分.这里为大家整理了一份完整的使用教程,让你轻轻松松那高分! 1.下载程序:打开下面的链接,点右侧 clone or ...

  5. 微信小程序 python 自动化测试_微信小程序的自动化测试框架

    微信小程序的自动化测试框架 微信发布了小程序的自动化测试框架Minium,提供了多种运行验证方式,其特点: 支持一套脚本,iOS & Android & 模拟器,三端运行 提供丰富的页 ...

  6. python修改微信运动步数_微信运动数据抓取(Python)

    "微信运动"能够向朋友分享一个包含有运动数据的网页,网页中就有我们需要的数据.url类似于:http://hw.weixin.qq.com/steprank/step/person ...

  7. 跳一跳python刷分_微信跳一跳python怎么刷分 跳一跳python应用教程

    微信跳一跳python怎么刷分 跳一跳python使用教程 发表时间:2018-01-08 我要评论(0) | 我要分享: 跟着身边不少小伙伴都参加了微信跳一跳挑衅,友人圈最近都被刷爆了,为了刷分,良 ...

  8. java微信群自动回复_微信群怎么设置自动回复的小助手?看这一份攻略就够了...

    不得不说现在使用微信去营销的商家是越来越多了,因为微信的人体基数大,现在全国已经拥有7亿多人都在使用着微信,已经占据中国人口的一半了.现在谁的微信里没有微信群,微信群给很多商家带来了利润,对于微信群进 ...

  9. python报名_人生苦短,我选Python (课程推迟,可先报名,正在筹备线上课程,时间另行告知)...

    先看看往期课程的评价吧,还是很受认可的:而且经常也有朋友在公众号后台留言,说跟着我们的课程入门了Python编程,迈出了重要一步,甚感欣慰! 学习程序语言不是一件简单事.为什么编程这么难?见下图. 图 ...

最新文章

  1. vscode Python 运行环境配置
  2. android studio 工程demo例子,Android Studio 实现跑马灯微项目实例
  3. C++起始(关键字,命名空间,缺省参数,函数重载(c语言为什么不支持函数重载))
  4. 光与夜之恋服务器维护中,光与夜之恋7月16日停服维护说明 维护详情一览
  5. python正则表达式提取字符串的字母_Python正则表达式提取一部分字符串
  6. sql server计算日期到当前日期天数_Excel如何统计连续停机天数问题
  7. 两边填上相同的数_二年级必考题,在括号里填上相同的数~
  8. Lucence.net索引技术 一
  9. linux下imp导入oracle数据库,Oracle数据库Linux下的导入IMP
  10. vbScript: 编号成生不夠位數前面加零
  11. golang fmt.printf()
  12. 指定的網域的名稱或安全性識別碼(用磁碟映像檔部署的電腦無法加入AD網域 )...
  13. Anybody = Nobody
  14. 佳能打印机扫描文件到电脑显示设置计算机,佳能打印机办公用哪个型号好 佳能打印机扫描文件到电脑步骤【详解】...
  15. Android之录制歌曲
  16. python csv文件到txt文件转换
  17. 直播源php代理用什么主机,流媒体直播系统_流媒体直播php源码_流媒体直播源码...
  18. 每日一题——有效的数独
  19. VSCode 前端插件推荐
  20. sql 查询本月请假的人数_温故而知新---学习SQL练习作业

热门文章

  1. MFC开发IM-设置 static的背景色和字体色
  2. 得物:两款问题商品系标识标注方式不符合最新规定 已先行下架商品
  3. 微博:第二批共处置10106个账号 十万粉丝到一百万粉丝的账号8个
  4. iPhone 12在二季度iPhone出货量中占63% 低于iPhone 11同期
  5. Soul缘何能成为Z时代的心头好?
  6. iPhone 13 Pro全新配色曝光:全新“磨砂黑”致敬经典
  7. 联想拯救者电竞手机Pro透明版马上就到:一眼就能看到“芯”
  8. 消息称苹果正开发基于自研ARM芯片的游戏主机
  9. 罗永浩卖半价iPhone秒没,网友晒开挂软件,怪不得你抢不到
  10. 微信推出QQ小程序遭网友吐槽:请不要俄罗斯套娃