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

        ?

        支持DOM模板可視化配置的網(wǎng)頁抽取方法

        2018-05-18 07:58:27李健馬延周
        現(xiàn)代計算機 2018年10期
        關(guān)鍵詞:頁面可視化

        李健,馬延周

        (解放軍信息工程大學(xué)洛陽校區(qū)基礎(chǔ)部,洛陽 471003)

        0 引言

        萬維網(wǎng)是Internet信息發(fā)布的主要形式,各類網(wǎng)站多如牛毛,所包含的網(wǎng)頁更是浩如煙海。這些網(wǎng)頁中包含海量的數(shù)據(jù),也蘊藏著巨大的價值。網(wǎng)絡(luò)爬蟲是按照某定規(guī)則自動地抓取Web信息的應(yīng)用程序[1]。從采集粒度上看,網(wǎng)絡(luò)爬蟲可分為“頁面級”爬蟲和“元素級”爬蟲。“頁面級”爬蟲追求內(nèi)容的覆蓋率,希望盡量多地爬取到相關(guān)網(wǎng)頁;“元素級”爬蟲則追求內(nèi)容的精準(zhǔn)性,其目標(biāo)是精確抽取出網(wǎng)頁中的關(guān)鍵內(nèi)容?,F(xiàn)有“元素級”爬蟲多采用模板匹配的方法[2-3],但往往需要手動配置。手動配置對專業(yè)要求較高,需要了解網(wǎng)頁結(jié)構(gòu)、正則表達式等知識;又因其配置過程復(fù)雜且需手動輸入而使效率低下且容易出錯。

        針對上述不足,本文提出一種支持可視化模板配置的網(wǎng)頁抽取方法,用戶可使用鼠標(biāo)直接點選頁面元素自動生成DOM模板,進而實現(xiàn)網(wǎng)頁抽取。下面將詳情介紹其抽取原理和關(guān)鍵技術(shù)。

        1 抽取原理

        1.1 元素的DOM路徑

        根據(jù)DOM的定義[4],一個HTML文檔可以看作一顆樹,其中每個元素(結(jié)點)都按照一定的層次結(jié)構(gòu)組織在這顆樹中。元素是文檔樹的根,每個元素都存在一條從根到該元素的層次路徑,我們稱這個層次路徑為“DOM路徑”。DOM路徑具有元素定位功能,是網(wǎng)頁抽取的基礎(chǔ)。

        例1有網(wǎng)頁內(nèi)容如下:

        例如,本例中“”標(biāo)簽在文檔樹中的層次路徑為:

        又如,本例中“

        床前明月光

        ”標(biāo)簽在文檔樹中的層次路徑為:

        1.2 根據(jù)DOM路徑抽取元素

        對于給定元素,我們可以獲取其DOM路徑;反之,如果給定路徑信息,我們也可以“自頂向下”找出這個元素(或者同級別同類型的多個元素)。

        根據(jù)路徑1,可在例1中匹配到1個

        元素。匹配過程如下:

        表1

        根據(jù)路徑2,我們則可以匹配到所有4個

        元素。匹配過程如下:

        表2

        由此可以歸納出網(wǎng)頁抽取的基本思路:首先在頁面中選擇元素生成路徑模板,然后根據(jù)模板抽取更多網(wǎng)頁元素。注意:這里所說的更多元素,可以是一個網(wǎng)頁中的同類元素,也可以是其他同構(gòu)網(wǎng)頁中的同類元素。

        例2:有網(wǎng)頁內(nèi)容如下:

        本例與上例為同構(gòu)頁面,若用上例中的路徑1(html->body->div->h1)對本例進行元素抽取,可得到2個

        元素,匹配過程如下:

        表3

        若用路徑2(html->body->div->p)對本例進行元素抽取則可得到8個

        元素,匹配過程如下:

        表4

        1.3 為DOM路徑設(shè)置條件

        同一個DOM路徑在網(wǎng)頁中可能對應(yīng)多個元素,而我們或許只需要其中一部分。此時可對DOM路徑設(shè)置一些限制條件,以篩選出需要的元素。在元素路徑的基礎(chǔ)上設(shè)置一些匹配條件,就構(gòu)成了一個內(nèi)容抽取模板。常用限制條件有:ID、CLASS、Text。

        例2中共有8個

        元素,它們的DOM路徑均為“html->body->div->p”,我們直接用這個路徑抽取可以找到全部的

        元素。若希望僅抽取第二首詩的正文內(nèi)容,就可在div層加上“id='sceond'”的限制條件。匹配過程如下:

        表5

        這樣就只保留了第二首詩的正文內(nèi)容。除了id條件,我們還可以設(shè)置class和text條件。

        例3:有網(wǎng)頁內(nèi)容如下:

        本例正文部分包含一組產(chǎn)品鏈接,它們的DOM路徑均為“html->body->div->div->a”。經(jīng)分析發(fā)現(xiàn)這些產(chǎn)品有新舊之分,若我們希望只抽取新產(chǎn)品鏈接,則可在層添加“class='new'”的條件限制。此時抽取模板為:html->body->div->div->a[class='new'],抽取過程不再列出。

        在頁面下部有一組分頁鏈接,它們具有相同的DOM路徑,即使設(shè)置id和class條件也不能區(qū)分。如果我們要抽取“下一頁”鏈接,而不是所有分頁鏈接,則可通過元素的內(nèi)置本文加以區(qū)分。此時抽取模板為:html->body->div->a[text='下一頁'],抽取過程不再列出。

        2 關(guān)鍵技術(shù)

        可視化模板配置的主要流程如圖1所示。本節(jié)將介紹模板配置各環(huán)節(jié)的關(guān)鍵技術(shù)實現(xiàn)。

        圖1 可視化模板配置流程

        2.1 加載頁面

        要實現(xiàn)通過網(wǎng)頁元素點選的方式完成模板配置,就要求應(yīng)用程序需要提供一個可視化配置環(huán)境。這一般需要借助Web瀏覽器控件,它可以加載顯示網(wǎng)頁。在.NET WinForm環(huán)境下可用的瀏覽器控件有Web-Browser控件(IE內(nèi)核)、GeckoWebBrowser控件(FireFox內(nèi)核)、WebView控件(Chrome內(nèi)核)等。由于WebBrowser接口定義復(fù)雜,而WebView對.NET的沒有提供官方接口,因此我們選用GeckoBrowser控件。配置界面的運行效果如圖2所示。

        圖2 模板配置界面

        使用GeckoWebBrowser控件加載網(wǎng)頁的代碼如下:

        2.2 捕捉元素

        用戶可使用鼠標(biāo)選擇元素完成抽取模板的配置。捕捉頁面元素需要為瀏覽器控件添加2個鼠標(biāo)事件響應(yīng),其中MouseMove事件用于預(yù)選元素,即當(dāng)當(dāng)鼠標(biāo)移動到某個元素之上時,元素將被設(shè)為預(yù)選狀態(tài)(標(biāo)記為綠色背景);而MoveDown事件則用于選中元素,若預(yù)選元素確為抽取目標(biāo),則可按下鼠標(biāo)選中該元素(標(biāo)記為黃色背景)。

        為了在選擇元素時保持頁面穩(wěn)定,還要使瀏覽器控件禁止響應(yīng)Navigating和CreateWindow事件。因為當(dāng)用戶選擇超鏈接或某些按鈕元素時,頁面可能會發(fā)生跳轉(zhuǎn)或彈出新窗口,使用戶無法繼續(xù)操作。

        2.3 模板表示

        DOM路徑一般包含多層,在程序內(nèi)部我們定義MatchLayer類用于表示路徑模板中的一層。匹配內(nèi)容包括標(biāo)簽名、元素ID、元素CLs、元素文本等信息。

        整個DOM路徑可用List來表示。

        XML格式文件表達能力強、可擴展性好,在外部我們選擇使用XML文件來保存配置好的模板,以便日后重復(fù)使用。每個抽取項使用“template_item”標(biāo)簽來表示,某類網(wǎng)頁“正文”抽取項所對應(yīng)的XML節(jié)點如下:

        一類網(wǎng)頁中可能包含多個抽取項,例如新聞頁中有標(biāo)題、作者、日期、正文等多項內(nèi)容。整個XML文件用于描述一類網(wǎng)頁的多個抽取項,格式如下:

        程序在保存或加載模板時,會對內(nèi)部數(shù)據(jù)對象和外部XML文件進行格式轉(zhuǎn)換。轉(zhuǎn)換過程這里不再詳述。

        2.4 生成模板

        對于給定元素,從自身開始“自底向上”不斷尋找其父元素(直到為止),就可得到其DOM路徑。生成元素DOM模板的主要代碼如下:

        上述代碼主體部分是一個循環(huán),用于找出元素的DOM路徑。在循環(huán)體中可為每層路徑添加id、cls、text等屬性的限制條件,從而生成完整的抽取模板。說明:實際程序根據(jù)用戶設(shè)置添加限制條件,此處為簡化代碼省略了相關(guān)判斷?!霸爻槿 笔恰吧赡0濉钡哪孢^程,具體過程這里不再詳述。

        3 測試總結(jié)

        為進一步驗證上述方法的可行性和效率,我們將其應(yīng)用于新聞自動采集系統(tǒng)。運行效果如圖3所示。

        經(jīng)過試用,此方法可使抽取效率明顯提高,主要體現(xiàn)在以下方面:可視化點選元素,內(nèi)容呈現(xiàn)更加直觀;自動生成DOM模板,避免手動輸入錯誤;提供“抽取測試”功能,若有錯誤可立即修改;支持模板編輯管理,實現(xiàn)“一次配置,多次使用”。

        測試表明:本文提出的抽取方法是可行的,且具有一定先進性,可為各類“網(wǎng)頁采集”程序提供技術(shù)參考。由于篇幅所限,文中對很多技術(shù)細(xì)節(jié)未能詳述,若需參考程序可聯(lián)系筆者。

        圖3 新聞自動采集系統(tǒng)

        參考文獻:

        [1]陸劍江,錢培德.基于語料的Web頁面抽取器的研究與實現(xiàn)[J].計算機工程,2003,29(06):34-35.

        [2]陳巧靈,廖祥文,魏晶晶,等.基于DOM樹層次特征的多記錄網(wǎng)頁抽取[J].模式識別與人工智能,2015,28(02):125-131.

        [3]姬鑫,鐘誠.基于分塊的新聞網(wǎng)頁信息抽取算法[J].計算機應(yīng)用與軟件,2015(04):317-322.

        [4]房勇,李銀勝.基于DOM狀態(tài)轉(zhuǎn)換的隱網(wǎng)頁信息抽取算法[J].計算機應(yīng)用與軟件,2015(09):17-21.

        猜你喜歡
        頁面可視化
        微信群聊總是找不到,打開這個開關(guān)就好了
        大狗熊在睡覺
        刷新生活的頁面
        自然資源可視化決策系統(tǒng)
        北京測繪(2022年6期)2022-08-01 09:19:06
        思維可視化
        師道·教研(2022年1期)2022-03-12 05:46:47
        基于Power BI的油田注水運行動態(tài)分析與可視化展示
        云南化工(2021年8期)2021-12-21 06:37:54
        自然資源可視化決策系統(tǒng)
        北京測繪(2021年7期)2021-07-28 07:01:18
        基于CGAL和OpenGL的海底地形三維可視化
        “融評”:黨媒評論的可視化創(chuàng)新
        傳媒評論(2019年4期)2019-07-13 05:49:14
        同一Word文檔 縱橫頁面并存
        久久免费网国产AⅤ| 亚洲国产a∨无码中文777| 亚洲av成人噜噜无码网站| 欧美亚洲日韩国产人成在线播放 | 日本高清成人一区二区三区| 亚洲精品国产一二三区| 双腿张开被9个男人调教| 欧美a在线播放| 91国语对白在线观看| av天堂精品久久综合网| 毛片亚洲av无码精品国产午夜| 亚洲精品美女久久久久久久| 国产精品久久熟女吞精| 日韩女同视频在线网站| 亚洲综合区图片小说区| 欧美日韩性高爱潮视频| 日本女优五十路中文字幕| 免费国产黄网站在线观看视频| 亚洲一区av无码少妇电影| 无码伊人久久大蕉中文无码| 亚洲国产综合人成综合网站| 国产乱子伦农村xxxx| 日本高清不卡二区| 青青草在线成人免费视频| 亚洲av无码乱码国产麻豆| 亚洲av日韩av高潮潮喷无码| 在线观看亚洲精品国产| 国产在线精品观看一区二区三区 | 中文字幕亚洲高清精品一区在线| 国产精品永久久久久久久久久| 少妇人妻偷人精品一区二区| 91精品国产无码在线观看| 在线观看麻豆精品视频| 男男啪啪激烈高潮cc漫画免费| 91精品国产福利尤物免费| 国产偷闻女邻居av在线观看| 99热在线观看| 亚洲色欲在线播放一区| 一本久道视频无线视频试看| 无码少妇丰满熟妇一区二区| 国产va免费精品观看|