国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

互聯(lián)網(wǎng)電視集成平臺(tái)數(shù)據(jù)爬蟲(chóng)軟件

2018-01-25 10:44付茗
電子測(cè)試 2017年24期
關(guān)鍵詞:該軟件機(jī)頂盒版塊

付茗

(國(guó)家新聞出版廣播電影電視總局二八二臺(tái),湖南長(zhǎng)沙,410146)

1 問(wèn)題提出

由于互聯(lián)網(wǎng)電視機(jī)頂盒系統(tǒng)是基于Android系統(tǒng)而開(kāi)發(fā)的,因此可以根據(jù)Android相關(guān)的特性搭建對(duì)應(yīng)的環(huán)境,對(duì)該軟件進(jìn)行協(xié)議分析,逆向相關(guān)的API(Application Programming Interface,應(yīng)用程序編程接口),分析相關(guān)的數(shù)據(jù),從而得到監(jiān)看統(tǒng)計(jì)所需要的源數(shù)據(jù)。本論文以互聯(lián)網(wǎng)電視機(jī)頂盒“芒果嗨Q H5”為例進(jìn)行分析。

2 軟件要求

該軟件旨在取代互聯(lián)網(wǎng)電視機(jī)頂盒,而直接對(duì)機(jī)頂盒的部分?jǐn)?shù)據(jù)進(jìn)行數(shù)據(jù)采集和數(shù)據(jù)分析,同時(shí)進(jìn)行數(shù)據(jù)整理。

2.1 軟件功能

自動(dòng)采集:該軟件能自動(dòng)采集互聯(lián)網(wǎng)電視機(jī)頂盒的部分?jǐn)?shù)據(jù),并分析所需要的數(shù)據(jù)。

自動(dòng)解析:該軟件能解析相關(guān)的數(shù)據(jù),并提取有用數(shù)據(jù),為統(tǒng)計(jì)做前提準(zhǔn)備。

自動(dòng)統(tǒng)計(jì):該軟件能按照監(jiān)看的需求,對(duì)相關(guān)數(shù)據(jù)進(jìn)行分析并統(tǒng)計(jì)。

自動(dòng)導(dǎo)出:該軟件能按照監(jiān)看的需求,進(jìn)行數(shù)據(jù)導(dǎo)出,并形成報(bào)表。

2.2 軟件的特性

(1)易用性:該軟件可采用兩種方式工作:“定時(shí)后臺(tái)服務(wù)模式”和“人工主動(dòng)運(yùn)行模式”。當(dāng)采用“定時(shí)后臺(tái)服務(wù)模式”時(shí),可達(dá)到無(wú)人干預(yù)的效果,軟件會(huì)定時(shí)采集、分析并輸出,完全取代人工操作。當(dāng)采用“人工主動(dòng)模式”時(shí),工作人員可選擇在監(jiān)看工作需要的時(shí)候,手動(dòng)運(yùn)行一下該軟件即可,軟件會(huì)自動(dòng)進(jìn)行采集、分析和輸出。

(2)智能性:該軟件無(wú)論采用哪種模式,其運(yùn)行過(guò)程中,均無(wú)需人為干預(yù),軟件會(huì)自動(dòng)進(jìn)行采集、分析、統(tǒng)計(jì)并導(dǎo)出相關(guān)數(shù)據(jù)。

(3)跨平臺(tái)性:該軟件可運(yùn)行于Windows、Linux、MacOS、Unix,甚至嵌入式設(shè)備中。此外,該軟件也可作為一個(gè)模塊嵌入到其他系統(tǒng)中。

3 軟件設(shè)計(jì)

該軟件主要分為以下4個(gè)模塊。

(1)采集模塊:采集模塊主要是根據(jù)特殊數(shù)據(jù),按相關(guān)API自動(dòng)發(fā)送網(wǎng)絡(luò)請(qǐng)求包,來(lái)代替互聯(lián)網(wǎng)電視機(jī)頂盒的功能進(jìn)行相應(yīng)的數(shù)據(jù)獲取。

(2)解析模塊:解析模塊主要是將API返回的數(shù)據(jù),按照對(duì)應(yīng)的格式進(jìn)行解析,得到統(tǒng)計(jì)所需要的數(shù)據(jù)。該數(shù)據(jù)一般為程序的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)。

(3)統(tǒng)計(jì)模塊:統(tǒng)計(jì)模塊主要是對(duì)解析后的數(shù)據(jù)進(jìn)行歸納整理,按特定的統(tǒng)計(jì)算法算出相關(guān)的數(shù)值,并暫存到內(nèi)存中。

(4)導(dǎo)出模塊:導(dǎo)出模塊主要是將統(tǒng)計(jì)好的數(shù)據(jù),按照特定的報(bào)表進(jìn)行輸出和歸檔。

4 軟件實(shí)施

4.1 抓包環(huán)境搭建

該軟件使用了抓包工具Charles。Charles 是一款網(wǎng)絡(luò)調(diào)試代理應(yīng)用(Web Debugging Proxy Application),能代理、截獲、轉(zhuǎn)發(fā)電腦上的http收發(fā)請(qǐng)求數(shù)據(jù)。該軟件的抓包環(huán)境搭建步驟如下所示。

(1)在電腦上啟動(dòng)軟件Charles,進(jìn)入Charles的使用界面。進(jìn)入“Proxy”(代理)菜單,點(diǎn)擊“Proxy Settings”(代理設(shè)置)。

圖1 軟件Charles代理設(shè)置示意圖

(2)設(shè)置Proxies(代理)的HTTP Proxy端口。

圖2 HTTPPeoxy端口設(shè)置示意圖

4.2 互聯(lián)網(wǎng)電視機(jī)頂盒代理設(shè)置

打開(kāi)互聯(lián)網(wǎng)電視機(jī)頂盒的“網(wǎng)絡(luò)設(shè)置”,在已連接的網(wǎng)絡(luò)連接處長(zhǎng)按遙控器OK鍵,出現(xiàn)菜單后點(diǎn)擊“修改網(wǎng)絡(luò)”,再勾選“高級(jí)選項(xiàng)”。

點(diǎn)擊“手動(dòng)”配置,添加http代理,將代理的ip設(shè)為Charles 所在電腦的ip,將代理的端口設(shè)為Charles中所設(shè)置的端口。

4.3 協(xié)議分析

EPG是英文Electronic Program Guide(電子節(jié)目指南)的縮寫。它描述了提供給電視節(jié)目觀眾的所有節(jié)目的信息,同時(shí)它的更新或異常也能反映出內(nèi)容的變化和異常,是需要重點(diǎn)監(jiān)控的警報(bào)信息。要想統(tǒng)計(jì)互聯(lián)網(wǎng)電視集成平臺(tái)所傳播的節(jié)目數(shù)量,則需要抓取域名“epgcdn.hifuntv.com”下的所有http包。

圖3 修改網(wǎng)絡(luò)示意圖

圖4 添加http代理示意圖

4.3.1 獲取主頁(yè)目錄數(shù)據(jù)API

表1 獲取主頁(yè)目錄數(shù)據(jù)表

通過(guò)解析數(shù)據(jù),獲取所有版塊的id和名稱,以便后續(xù)API的請(qǐng)求。

xpath: meta_data_list/meta_data[id==4.0menu]/page/item_data[action!=m_open_web

&&action!=m_open_search_page]/arg_list/a/[k==media_asset_id]/v

xpath: meta_data_list/meta_data[id==4.0menu]/page/item_data[action!=m_open_web

&&action!=m_open_search_page]/arg_list/a/[k==name]/v

通過(guò)分析這兩個(gè)xpath,可以分別得到版塊的id以及版塊的名字。

原始數(shù)據(jù)示例:

4.3.2 獲取版塊的主頁(yè)數(shù)據(jù)API

表2 獲取版塊的主頁(yè)數(shù)據(jù)表

此API的作用是獲取每個(gè)版塊的主頁(yè)數(shù)據(jù),返回json類型的數(shù)據(jù)。

API參數(shù)中的“MediaAssetId”,是版塊的id,主要是用來(lái)控制該API取哪個(gè)版塊。如表2中所示,參數(shù)是“movie”,則表示是電影版塊,該值來(lái)源于獲取主頁(yè)目錄數(shù)據(jù)API返回的數(shù)據(jù)。

該示例中的“l(fā)”節(jié)點(diǎn),描述的是總體數(shù)據(jù),即“電影”版塊的基本數(shù)據(jù),如下所示:

①media_asset_id:版塊的id

②media_asset_name:版塊的名稱

③media_asset_count:版塊的資源個(gè)數(shù)

該示例中的“il”節(jié)點(diǎn),描述的是“電影”版塊下的二級(jí)子版塊數(shù)據(jù),該示例只展示了其中的一條二級(jí)子版塊“最新強(qiáng)檔”,其它二級(jí)子版塊類似。

①name:“二級(jí)子版塊”名稱

②arg_list/total_video_rows:該“二級(jí)子版塊”中的節(jié)目個(gè)數(shù)

③arg_list/total_special_rows:該“二級(jí)子版塊”下的“三級(jí)子版塊”的個(gè)數(shù)

④arg_list/special_list/il:該“三級(jí)子版塊”的信息,其中id表示該版塊的id,name表示該版塊的名稱(只有當(dāng)arg_list/total_special_rows的值不為0時(shí),才有此節(jié)點(diǎn))。

4.3.3 獲取三級(jí)版塊的主頁(yè)數(shù)據(jù)API

此API的作用是獲取每個(gè)三級(jí)子版塊的主頁(yè)數(shù)據(jù),返回json類型的數(shù)據(jù)。

API參數(shù)中的“SpecialId”,是三級(jí)子版塊的 id,主要是用來(lái)控制該API取哪個(gè)三級(jí)子版塊。如表3中所示,參數(shù)是SpecialId,該值來(lái)源于接口二API返回的數(shù)據(jù),其具體路徑為:arg_list/special_list/il[@id]。

圖5 程序關(guān)鍵代碼流程圖

表3 獲取三級(jí)版塊的主頁(yè)數(shù)據(jù)表

4.4 程序算法設(shè)計(jì)

4.5 程序關(guān)鍵代碼流程圖

該軟件可采用簡(jiǎn)單的python[3]腳本去爬取監(jiān)看所需的數(shù)據(jù)。具體程序關(guān)鍵代碼流程圖如圖5所示。

4.6 系統(tǒng)的定時(shí)任務(wù)模式

例如,在linux中,可以使用crontab設(shè)置定時(shí)任務(wù),達(dá)到定時(shí)執(zhí)行的目的。

crontab的基本用法如下所示:

5 報(bào)表導(dǎo)出

該軟件經(jīng)過(guò)數(shù)據(jù)統(tǒng)計(jì),可將統(tǒng)計(jì)結(jié)果形成報(bào)表導(dǎo)出。該報(bào)表統(tǒng)計(jì)了每一個(gè)版塊的節(jié)目個(gè)數(shù)、所占百分比以及總節(jié)目數(shù),并按照節(jié)目數(shù)從多到少對(duì)各版塊進(jìn)行了排序。(如表4所示)

表4 和豐互聯(lián)網(wǎng)電視集成平臺(tái)傳播節(jié)目數(shù)量統(tǒng)計(jì)表

6 軟件擴(kuò)展

該軟件可進(jìn)行進(jìn)一步的改進(jìn),讓導(dǎo)出的報(bào)表更豐富?;蛘邔⒔y(tǒng)計(jì)好的數(shù)據(jù),發(fā)送給web服務(wù)器,讓web服務(wù)器以web的方式呈現(xiàn)給數(shù)據(jù)分析人員。

7 總結(jié)

前文詳細(xì)闡述了該軟件的抓包環(huán)境搭建、協(xié)議分析、程序設(shè)計(jì)、程序?qū)崿F(xiàn)和報(bào)表導(dǎo)出。通過(guò)這個(gè)軟件,可以讓開(kāi)發(fā)人員實(shí)現(xiàn)更多數(shù)據(jù)的統(tǒng)計(jì)和更豐富的報(bào)表功能。

[1][美]亨特,[譯]吳文國(guó).XML入門經(jīng)典[M].清華大學(xué)出版社.2009-2:2.

[2][美]Lindsay Bassett,[譯]魏嘉汛.JSON必知必會(huì)[M].人民郵電出版社.2016-5:17.

[3][美]埃里克.馬瑟斯,[譯]袁國(guó)忠.Python編程:從入門到實(shí)踐[M].人民郵電出版社. 2016-7-1:15.

猜你喜歡
該軟件機(jī)頂盒版塊
簡(jiǎn)單靈活 控制Windows 10更新更方便
《科學(xué)與社會(huì)》“STS研究”版塊2021年征稿啟事
加大對(duì)“無(wú)抗”、“替抗”的產(chǎn)品的研發(fā),潤(rùn)盈明年要在中草藥版塊再度發(fā)力
安全使用機(jī)頂盒注意五點(diǎn)
Flashfxp Password Decryptor
數(shù)字電視機(jī)頂盒軟件自動(dòng)測(cè)試系統(tǒng)的開(kāi)發(fā)及應(yīng)用
有線電視高清數(shù)字電視機(jī)頂盒測(cè)試系統(tǒng)的構(gòu)建
What is Apple Watch All About?
Allen & Heath推出GLD Editor控制軟件
牛津大學(xué)數(shù)據(jù)聯(lián)盟應(yīng)用軟件