python爬虫进阶教程:百万英雄答题辅助系统

1、前言

看了网上不少的教程都是经过OCR识别的,这种方法的优势在于通用性强。不一样的答题活动均可以参加,可是缺点也明显,速度有限,而且若是经过调用第三方OCR,有次数限制。可是使用本教程提到的数据接口。咱们能很容易的获取数据,速度快,可是接口是变化的,须要及时更新。javascript

2、实战解析

一、背景介绍

爬虫进阶教程:百万英雄答题辅助系统

百万英雄答题是一个最近很火爆的答题软件,答对12题的人,能够平分最后的奖金。奖金不错,笔者参加过几回,不过得到的都是小奖,最后几块钱的那种。对于不难的题目,可以直接百度出答案的题目,若是有个软件辅助实时给出参考,仍是一件很舒服的事情。想干就干,走起!html

二、先睹为快

先看下部署效果,经过服务器后端处理,经过前端显示,亲测延时3s:前端

爬虫进阶教程:百万英雄答题辅助系统

为啥作成这样呢?由于这样,别的人也能够经过浏览器进行访问,独乐不如众乐嘛!java

Github开源地址:https://github.com/Jack-Cherish/python-spidernode

三、西瓜视频APP抓包

对于如何抓包,我想应该都会了,我在手机APP抓包教程中有详细讲解,若有不会的,请暂时移步:http://blog.csdn.net/c406495762/article/details/76850843python

在比赛答题的时候,咱们能够经过抓包,找到这样的接口(点击放大):jquery

爬虫进阶教程:百万英雄答题辅助系统

能够看到,参数如上图所示。其中heartbeat后面的参数是一个随着场次的增长,逐渐增长的一个数,后面其余的例如iid和device_id是每一个人的用户信息,在接口的最后,有个rticket参数,这个是一个时间戳,能够经过time.time()模拟。git

2018-1-17更新:据朋友反应,url的有效参数只有heartbeat和rticket参数,用户信息能够不填写。github

注意:只有在答题直播开始的时候,才能经过接口抓取到数据,没有直播的时候,是获取不到数据的,是乱码。后端

经过这个接口获取数据,而后对数据进行解析,在经过百度知道索问题,简单高效。有了这个思想,就能够开始写代码了。

获取数据和查找答案就是这样,很简单,代码写的也较为凌乱,大牛能够按照这个思路改一改。

四、网站部署

没作事后端和前端,花了一天时间,现学现卖弄好的,javascript也是现看现用,百度的程序,调试调试而已。可能有不少用法比较low的地方,用法不对,请勿见怪,有大牛感兴趣,能够自行完善。

这是我当时看的一些文章:

Node.js和Socket.IO通讯基础:菜鸟学习nodejs--Socket.IO即时通信

Node.js逐行读取txt文件:Line-Reader

Node.js定时任务:Node-Schedule

后端app.js:

前端index.html:

将这些部署到服务器上。这是个人部署效果:

爬虫进阶教程:百万英雄答题辅助系统

部署好后。使用指令运行Node.js服务:

运行python3脚本:

若是一切都搭建好了,那么这个百万英雄答题辅助系统就能够运行了!

3、总结

  • 本软件仅用于学习交流,请勿用于任何商业用途。
  • 也能够对代码进行简单修改,python打印信息,只在本地查看,无需写入txt文件,部署到服务器上。
  • 代码乱,没有通过优化,还需重构。
相关文章
相关标签/搜索