亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        移動(dòng)數(shù)字城市應(yīng)用平臺服務(wù)端系統(tǒng)數(shù)據(jù)整合模塊的實(shí)現(xiàn)途徑

        2017-01-04 07:27:56陳新周斯黎
        國土資源導(dǎo)刊 2016年4期
        關(guān)鍵詞:頁面程序內(nèi)容

        陳新,周斯黎

        (湖南省第一測繪院,湖南 衡陽 421001)

        移動(dòng)數(shù)字城市應(yīng)用平臺服務(wù)端系統(tǒng)數(shù)據(jù)整合模塊的實(shí)現(xiàn)途徑

        陳新*,周斯黎

        (湖南省第一測繪院,湖南 衡陽 421001)

        本文主要對移動(dòng)數(shù)字城市應(yīng)用平臺服務(wù)端系統(tǒng)數(shù)據(jù)整合模塊進(jìn)行分析研究,通過對數(shù)據(jù)整合模塊的總體結(jié)構(gòu)進(jìn)行設(shè)計(jì)與建構(gòu),分析模塊核心功能的技術(shù)流程,并對數(shù)據(jù)整合功能的關(guān)鍵步驟進(jìn)行系統(tǒng)闡述,總結(jié)出應(yīng)用平臺數(shù)據(jù)整合模塊的實(shí)現(xiàn)途徑。

        數(shù)字城市;應(yīng)用平臺;數(shù)據(jù)整合模塊;信息抓取

        1 總體設(shè)計(jì)

        數(shù)據(jù)整合模塊是以子系統(tǒng)的形式進(jìn)行運(yùn)行,作為移動(dòng)數(shù)字城市應(yīng)用平臺服務(wù)端系統(tǒng)的重要組成部分,在實(shí)現(xiàn)數(shù)據(jù)整合功能的過程中,根據(jù)需求確定數(shù)據(jù)來源,采取合適的技術(shù)手段獲取數(shù)據(jù)源信息,通過統(tǒng)一的處理流程進(jìn)行信息分析,從中提取有效內(nèi)容,最后經(jīng)過特定的格式化將這些信息存儲到系統(tǒng)數(shù)據(jù)庫中(圖1)。

        在數(shù)據(jù)來源的Web頁面中,可通過HTTP GET請求獲得頁面信息進(jìn)行抽取,有些頁面則需要通過HTTP POST請求才能獲得頁面信息,有的則是以Web Service服務(wù)接口的形式向系統(tǒng)提供。面對這種復(fù)雜情況,系統(tǒng)應(yīng)具有滿足各種條件的信息抽取手段,即系統(tǒng)應(yīng)當(dāng)支持采用多種方式來獲取數(shù)據(jù)源的頁面信息,分析頁面結(jié)構(gòu),從中獲取主要信息,最后將提取出來的結(jié)果存入數(shù)據(jù)庫。

        2 流程設(shè)計(jì)

        2.1 獲取網(wǎng)頁信息

        網(wǎng)頁信息都是以超文本形式組成,通過分析超文本信息,完成對網(wǎng)頁主體內(nèi)容的抽取。網(wǎng)頁的超文本信息就是網(wǎng)頁的源代碼,因此在網(wǎng)頁信息抽取的第一步就是需要獲取數(shù)據(jù)來源頁面的源代碼。

        2.2 基于規(guī)則的信息提取

        圖1 數(shù)據(jù)整合模塊的總體設(shè)計(jì)示意圖Fig.1 Overall design of data integration module

        在獲得頁面源代碼之后,程序首先將HTML文檔裝載,目的是為了得到形式上的XML文檔(是指文檔仍然按照半結(jié)構(gòu)化的HTML格式來標(biāo)記,但又支持XML的語法解析),使用Xpath位置路徑表達(dá)式定位待抽取的內(nèi)容,從而生成依據(jù)Xpath位置路徑表達(dá)式定義的核心抽取規(guī)則[1]。

        明確劃分同類頁面邊界之后,找到并分析頁面列表的主體內(nèi)容所在的節(jié)點(diǎn),確定列表中每個(gè)有效內(nèi)容發(fā)布頁面的標(biāo)題、發(fā)布日期以及URL等信息,根據(jù)這些內(nèi)容發(fā)布頁面的鏈接地址獲得內(nèi)容頁面文檔,在了解內(nèi)容頁面文檔的結(jié)構(gòu)之后,設(shè)計(jì)出合理的Xpath位置路徑表達(dá)式得到有效內(nèi)容的節(jié)點(diǎn),得到信息的標(biāo)題、發(fā)布時(shí)間、正文內(nèi)容、正文圖片、正文附件等在內(nèi)的數(shù)據(jù)元素。

        2.3 正文內(nèi)容處理

        在獲取到頁面中包含了正文內(nèi)容的節(jié)點(diǎn)后,程序根據(jù)節(jié)點(diǎn)中數(shù)據(jù)的類型進(jìn)行分類處理。對于文本數(shù)據(jù),程序會以段落的形式讀取數(shù)據(jù)并清理文本中的HTML符號,使用對應(yīng)的<text>標(biāo)簽頭進(jìn)行封裝。對于圖片數(shù)據(jù),程序會將包含圖片數(shù)據(jù)類型的節(jié)點(diǎn)放到集合中,通過遍歷整個(gè)集合將圖片下載到服務(wù)器端的文件系統(tǒng)中,再以<img>標(biāo)簽頭表示出每張圖片在文件系統(tǒng)中的路徑。某些信息發(fā)布頁面會帶有附件,為了方便客戶端用戶獲得這些附件,服務(wù)端在信息抽取時(shí)需要將這些附件也一并抓取。

        系統(tǒng)在完成網(wǎng)頁信息抽取工作后,會得到這些信息對象的集合,然后依據(jù)信息的時(shí)間順序?qū)⑺鼈儼凑掌渌鶎俚男畔㈩愋痛嫒敕?wù)端數(shù)據(jù)庫對應(yīng)的表中,抓取信息過程如圖2所示。

        數(shù)據(jù)整合模塊在設(shè)計(jì)中引入內(nèi)容格式化的目的是為了方便信息在移動(dòng)客戶端的顯示,保留了信息等在原始數(shù)據(jù)來源頁面的布局,節(jié)省了移動(dòng)數(shù)字城市應(yīng)用平臺管理人員的調(diào)整工作。

        3 程序結(jié)構(gòu)

        數(shù)據(jù)整合模塊基于.NET Framework 4.0框架使用C#語言開發(fā),整個(gè)項(xiàng)目程序集包括:程序入口、功能類、輔助類以及配置文件。

        C#默認(rèn)使用Program.cs類中的Main函數(shù)作為程序的入口點(diǎn),通過Main函數(shù)啟動(dòng)程序開始進(jìn)行信息抓取,程序運(yùn)行后采取進(jìn)程常駐的形式,根據(jù)系統(tǒng)設(shè)置的時(shí)間,每完成一次抓取流程,工作主線程就掛起一段時(shí)間,從而實(shí)現(xiàn)間隔性的信息抓取,保證了信息的實(shí)時(shí)性。

        功能類是整個(gè)數(shù)據(jù)整合模塊的核心類,其負(fù)責(zé)網(wǎng)頁信息抓取的絕大部分任務(wù),包括獲取頁面HTML文檔、基于規(guī)則提取頁面內(nèi)容、格式化生成最終結(jié)果等主要工作流程。

        輔助類主要包括用來描述信息對象模型的Info類和Meeting類、記錄日志的Logger類以及定義數(shù)據(jù)庫操作的Dbcontext類。

        程序集的依賴項(xiàng)之間的關(guān)系如圖3,其中包括了程序入口、功能類等項(xiàng)目文件之間的邏輯調(diào)用關(guān)系,另外還有外部依賴項(xiàng),主要是一些支持程序集運(yùn)行的動(dòng)態(tài)鏈接庫文件。

        4 應(yīng)用實(shí)現(xiàn)

        4.1 獲取網(wǎng)頁信息

        網(wǎng)頁信息一般都包含在網(wǎng)頁的HTML文檔中,從圖1總體設(shè)計(jì)示意圖中可以看出,數(shù)據(jù)整合模塊首先要解決的就是通過各種請求方式從數(shù)據(jù)源中獲得目標(biāo)網(wǎng)頁的源代碼。

        根據(jù)目前服務(wù)端系統(tǒng)的數(shù)據(jù)需求種類和數(shù)字城市信息發(fā)布網(wǎng)站的響應(yīng)特點(diǎn),程序需要提供三種請求方式分別是:HTTP GET請求、HTTP POST請求以及調(diào)用Web Service服務(wù)請求[2]。

        圖2 數(shù)據(jù)整合模塊的網(wǎng)頁信息抓取流程圖Fig.2 Data integration module web information grab flow chart

        圖3 程序集依賴項(xiàng)關(guān)系圖Fig.3 Assembly dependency relation graph

        程序使用的HTTP GET的請求方法是基于C#中的WebRequest類實(shí)現(xiàn)的。WebRequest類是.NET Framework平臺中的符合請求/響應(yīng)模型的抽象基類,通常用于訪問Internet數(shù)據(jù)。使用該請求/響應(yīng)模型的應(yīng)用程序可以在協(xié)議未知的情況下從通信遠(yuǎn)端請求數(shù)據(jù),在這種方式下,應(yīng)用程序處理WebRequest類的實(shí)例,而協(xié)議特定的子類則執(zhí)行請求的具體細(xì)節(jié)。

        程序中使用HTTP GET請求獲取Web頁面源代碼的方法需要提供目標(biāo)Web頁面的URL和字符編碼格式兩個(gè)參數(shù),方法執(zhí)行成功后,返回結(jié)果為目標(biāo)Web頁面的源代碼,其實(shí)現(xiàn)的代碼片段如下:

        程序使用的HTTP POST的請求方法也是基于WebRequest類實(shí)現(xiàn)的,但與HTTP GET請求方式有所差異,程序需要在Request對象中顯式指定請求為Post類型,并且根據(jù)目標(biāo)頁面的參數(shù)要求,將請求內(nèi)容體以字符流的形式寫入到Request對象中。

        請求方法需要提供目標(biāo)Web頁面的URL和合理的Post請求字符串,執(zhí)行成功后,返回結(jié)果為目標(biāo)Web頁面的源代碼,其實(shí)現(xiàn)的代碼片段如下:

        程序一方面通過HTTP GET或HTTP POST請求獲得數(shù)字城市公眾版網(wǎng)頁上面的數(shù)據(jù),另一方面還需要提供能夠調(diào)用Web Service服務(wù)接口來請求獲得不同應(yīng)用系統(tǒng)上面的信息的功能。

        Web Service是一種輕量級的獨(dú)立的通訊技術(shù),可以通過Internet或者Intranet上接收從其它系統(tǒng)中傳遞過來的請求。Web Service一般基于SOAP協(xié)議在Web上提供的軟件服務(wù),使用WSDL文件進(jìn)行說明,并通過UDDI進(jìn)行注冊。與其它開發(fā)平臺不同,C#.NET平臺無需其他的開發(fā)工具,其本身就全面支持Web Service,包括對服務(wù)器端的請求處理器以及對客戶端發(fā)送和接受SOAP消息的支持。在C#.NET平臺上調(diào)用Web Service服務(wù)接口也比較方便,只需在項(xiàng)目中添加包含Web Service接口的服務(wù)引用,就可以快速創(chuàng)建一個(gè)服務(wù)實(shí)例,然后通過調(diào)用實(shí)例中的方法,傳遞正確參數(shù),就可以接受SOAP消息[3]。

        成功添加Web服務(wù)引用后將其命名為bitss-OANews,項(xiàng)目將允許實(shí)例化bitssNews的服務(wù)對象,該服務(wù)對象包含一個(gè)獲取各類通知的接口GetNewsInfo,接口參數(shù)名分別為id和Ticket。其中,id值為28~40的整型數(shù)字,Ticket值為固定字符串iiibitss,程序調(diào)用GetNewsInfo方法并以XML節(jié)點(diǎn)形式接收指定類別的消息數(shù)據(jù)。

        4.2 基于規(guī)則的信息提取

        程序信息提取的規(guī)則核心是基于Xpath位置路徑表達(dá)式生成的,所以設(shè)計(jì)合理有效的Xpath表達(dá)式將直接影響到數(shù)據(jù)抽取結(jié)果的準(zhǔn)確性。我們在定義信息提取規(guī)則時(shí),要考慮不同類型的Web頁面的結(jié)構(gòu)差異,這里涉及到的類型主要是指Web頁面的數(shù)據(jù)來源類型,此外,信息提取目標(biāo)頁面還可以根據(jù)頁面數(shù)據(jù)形式分成列表型的網(wǎng)頁和內(nèi)容型的網(wǎng)頁。

        在網(wǎng)頁結(jié)構(gòu)上,一般都是列表型頁面包含了多個(gè)內(nèi)容型網(wǎng)頁的鏈接入口,所以程序在信息提取過程中的邏輯也基本都是一樣的,信息提取的步驟首先是獲取某個(gè)列表型的網(wǎng)頁結(jié)構(gòu)信息,然后根據(jù)解析結(jié)果得到依附于該頁面的多個(gè)內(nèi)容型的網(wǎng)頁節(jié)點(diǎn)信息,再對每一個(gè)節(jié)點(diǎn)進(jìn)行信息提取以便獲得每一個(gè)具體內(nèi)容頁面的數(shù)據(jù)[4]。

        因?yàn)閷τ跀?shù)據(jù)整合模塊,其多個(gè)數(shù)據(jù)源的數(shù)據(jù)抽取工作采用的都是如上所述的相同的執(zhí)行邏輯,只不過在設(shè)計(jì)Xpath表達(dá)式時(shí)需要參考不同的網(wǎng)頁結(jié)構(gòu)特點(diǎn)進(jìn)行設(shè)計(jì)。本文主要以網(wǎng)絡(luò)主頁的新聞頁面為例,介紹程序?qū)τ诹斜硇秃蛢?nèi)容型網(wǎng)頁的信息提取的實(shí)現(xiàn)。

        平臺新聞的列表頁面通常也被稱為數(shù)據(jù)密集型網(wǎng)頁(data-rich webpage),因?yàn)檫@種頁面集成了較多有效鏈接,往往也是重要的信息數(shù)據(jù)源。對于新聞列表頁面,當(dāng)獲得它的HTML代碼后,就需要展開對其文檔結(jié)構(gòu)進(jìn)行分析,以期找出頁面的局部信息塊和數(shù)據(jù)項(xiàng)的分布規(guī)律。根據(jù)得到的分析結(jié)果,可以推出對應(yīng)每個(gè)局部信息塊的Xpath位置路徑表達(dá)式,通過推算出的表達(dá)式,得到每個(gè)局部信息塊的節(jié)點(diǎn)信息,然后對節(jié)點(diǎn)內(nèi)的元素進(jìn)行提取,從而獲得全部數(shù)據(jù)項(xiàng)。在獲取每條新聞的標(biāo)題、發(fā)布日期和具體頁面的URL地址后,程序會先創(chuàng)建一個(gè)新聞實(shí)體對象,然后將這些數(shù)據(jù)放入新聞實(shí)體對象中,再根據(jù)具體頁面的URL獲得具體新聞頁面的HTML代碼,對該頁面的文檔結(jié)構(gòu)進(jìn)行分析以獲取新聞?wù)膬?nèi)容。對正文部分的數(shù)據(jù)抓取關(guān)鍵在于鎖定正文內(nèi)容所在的節(jié)點(diǎn),以便于提高抓取行為的效率,避免了無用內(nèi)容干擾結(jié)果。在確定新聞?wù)膬?nèi)容所在的上層節(jié)點(diǎn)之后,程序開始對其下層的所有有效的子節(jié)點(diǎn)進(jìn)行遍歷。對于新聞頁面的正文內(nèi)容,程序中使用的定位獲取頁面中有效子節(jié)點(diǎn)元素的Xpath位置路徑表達(dá)式,經(jīng)過實(shí)踐檢驗(yàn),該表達(dá)式基本滿足了對新聞?wù)膬?nèi)容部分的數(shù)據(jù)抓取需要。

        4.3 正文內(nèi)容處理

        在獲得所有有效內(nèi)容節(jié)點(diǎn)后,程序還要對這些節(jié)點(diǎn)中包含的數(shù)據(jù)類型進(jìn)行分類處理。一般來說節(jié)點(diǎn)中包含的數(shù)據(jù)分為文本內(nèi)容、圖片鏈接以及附件名稱和下載鏈接,本文在這里主要是對處理邏輯的具體實(shí)現(xiàn)進(jìn)行說明:

        程序首先以HTML節(jié)點(diǎn)集合的形式保存所有的有效內(nèi)容節(jié)點(diǎn),然后遍歷這個(gè)節(jié)點(diǎn)集合。對于每個(gè)節(jié)點(diǎn),程序會判斷這個(gè)節(jié)點(diǎn)里面的數(shù)據(jù)類型,具體判斷方法是通過對節(jié)點(diǎn)里面特征元素的判定,使用<img src=></img>或者<input src=/>標(biāo)簽進(jìn)行定義,對于包含附件數(shù)據(jù)的節(jié)點(diǎn)元素,一般使用<a href=></a>這樣的超鏈接定義標(biāo)簽。

        對上述這種具有顯性語義特征的判定方法,程序主要依賴于兩種實(shí)現(xiàn)方法:一是采用正則表達(dá)式匹配節(jié)點(diǎn)中符合特定標(biāo)簽格式的文本,再從文本中解析出數(shù)據(jù)內(nèi)容;二是利用Xpath表達(dá)式查找含有特定屬性的節(jié)點(diǎn),當(dāng)沒有找到合適節(jié)點(diǎn),表明節(jié)點(diǎn)中不包含圖片或附件數(shù)據(jù),否則,表明節(jié)點(diǎn)是屬于圖片或者附件的數(shù)據(jù)類型節(jié)點(diǎn)。

        當(dāng)程序完成對各種數(shù)據(jù)類型節(jié)點(diǎn)的分類后,開始對數(shù)據(jù)進(jìn)行解析和抓取,程序先使用正則表達(dá)式替換無效的HTML標(biāo)簽或者符號,然后會以換行符“ ”為文本進(jìn)行分行,這樣可以較好地將網(wǎng)頁原文中的段落格式保留下來,最后在每行非空的字符串之前加上<text>標(biāo)簽頭,保存到新聞對象的新聞?wù)闹小?/p>

        對于每一個(gè)圖片數(shù)據(jù)節(jié)點(diǎn),程序會獲得節(jié)點(diǎn)中關(guān)于圖片鏈接地址的屬性,再以圖片在正文出現(xiàn)的次序重命名圖片并進(jìn)行下載,圖片的下載路徑為程序指定的目錄加上以新聞序號命名的文件夾。圖片下載成功后,程序會在新聞對象的正文內(nèi)容中加入以<img>標(biāo)簽頭表示出每張圖片在文件系統(tǒng)中的路徑。

        對于每一個(gè)附件數(shù)據(jù)節(jié)點(diǎn),程序?qū)ζ浞治龅倪壿嬇c圖片節(jié)點(diǎn)的處理邏輯基本類似,附件的下載文件名也是以附件相對于在正文出現(xiàn)的次序加上文件格式重命名建立的,唯一不同之處在于附件相比于圖片還需要保留附件名稱,附件名稱一般會在網(wǎng)頁中定義附件數(shù)據(jù)的超鏈接標(biāo)簽中。當(dāng)程序?qū)⒏郊螺d成功后,會以<attname>標(biāo)簽頭表示附件名稱,以<atturl>標(biāo)簽頭表示附件在服務(wù)端文件系統(tǒng)的路徑,然后將這些信息放入到新聞對象的正文內(nèi)容部分。

        5 結(jié)論

        本文對于移動(dòng)數(shù)字城市應(yīng)用平臺服務(wù)端數(shù)據(jù)整合模塊進(jìn)行了總體設(shè)計(jì),重點(diǎn)參考了移動(dòng)互聯(lián)網(wǎng)的特點(diǎn),采用輕量級的開發(fā)框架以及基于JSON格式的數(shù)據(jù)傳輸方法,針對于目前數(shù)字城市網(wǎng)絡(luò)布局的分散性和封閉性,采用網(wǎng)頁信息抽取技術(shù)將不同來源的信息統(tǒng)一整合到系統(tǒng)數(shù)據(jù)庫中,以便實(shí)現(xiàn)客戶端及時(shí)獲得最新的數(shù)字城市資訊。

        [1] Mark Priestley.面向?qū)ο笤O(shè)計(jì)UML實(shí)踐[M].第二版.龔曉慶,卞雷.北京:清華大學(xué)出版社,2011: 1-8.

        [2] 王珊,劉怡.Sybase PowerDesigner原理和使用高級指南[M].北京:中國水利水電出版社,2010: 112-152.

        [3] 程杰.大話設(shè)計(jì)模式[M].北京: 清華大學(xué)出版社,2011: 71-72.

        [4] James W.Cooper.C#設(shè)計(jì)模式[M].張志華,劉云鵬.北京:電子工業(yè)出版社,2011: 85.

        [5] 高靜,段會川.基于移動(dòng)設(shè)備的JSON數(shù)據(jù)傳輸效率研究[J].信息技術(shù)與信息化,2011,12(1): 13-15.

        [6] 趙池龍.實(shí)用軟件工程[M].北京:電子工業(yè)出版社,2011: 84-85.

        Realization on the Data Integration Mode of System Platform Service Terminal Mobile Digital City

        Chen Xin, Zhou Sili
        (The First Surveying and Mapping Institute of Hunan, Hengyang Hunan 421001)

        This paper provides the data integration mode of system platform service terminal mobile digital city.Firstly, we design and construct the systematical structure of data integration mode.Then, the technical procedure of the mode core function is analyzed.Finally, the key process of data integration function is provided.

        digital city; platform; data integration; information capture

        F301.2

        B

        1672-5603(2016)04-087-6

        *第一作者簡介 陳新,男,1978年生,軟件工程專業(yè),高級工程師,主要從事測繪、國土規(guī)劃軟件開發(fā)應(yīng)用等工作。E-mail:438178001@qq.com

        2016-6-21;改回日期:2016-7-25。

        猜你喜歡
        頁面程序內(nèi)容
        大狗熊在睡覺
        刷新生活的頁面
        內(nèi)容回顧溫故知新
        試論我國未決羈押程序的立法完善
        “程序猿”的生活什么樣
        英國與歐盟正式啟動(dòng)“離婚”程序程序
        主要內(nèi)容
        臺聲(2016年2期)2016-09-16 01:06:53
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        同一Word文檔 縱橫頁面并存
        淺析ASP.NET頁面導(dǎo)航技術(shù)
        日韩精品欧美激情国产一区| 狠狠色婷婷久久一区二区三区 | 东京热加勒比无码少妇| 亚洲精品第一国产麻豆| 91青青草在线观看视频| 青青草免费在线爽视频| 极品少妇一区二区三区四区| 亚洲综合无码| 亚洲av日韩一区二三四五六七| 少妇连续高潮爽到抽搐| 亚洲欧美综合区自拍另类| 人妻少妇精品无码专区二| 久久久精品国产亚洲av网不卡| 丰满少妇按摩被扣逼高潮| 男女裸交无遮挡啪啪激情试看| 欧美色色视频| 国内揄拍国内精品久久| 久久国产劲爆∧v内射-百度| 欧美丰满熟妇aaaaa片| 熟妇人妻不卡中文字幕| 国产免费操美女逼视频| 亚洲av综合av成人小说| 久久精品国产精品亚洲毛片| 美女叉开双腿让男人插| 免费在线观看播放黄片视频| 国产成人一区二区三区影院动漫| 亚洲精品中国国产嫩草影院美女| 白白色福利视频在线观看| 中文字幕无码成人片| а√天堂资源8在线官网在线| 亚洲国产高清美女在线观看| 国产中文字幕免费视频一区| 和黑人邻居中文字幕在线| 欧美日韩国产免费一区二区三区欧美日韩 | 精品久久欧美熟妇www| 国产美女69视频免费观看| 国产精品国产三级国产专播| 亚洲人成网网址在线看| 亚洲 欧美 唯美 国产 伦 综合| 97中文字幕一区二区| 久久精品网站免费观看|