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文件,部署到服務器上。
  • 代碼亂,沒有通過優化,還需重構。
相關文章
相關標籤/搜索