999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

李健,馬延周

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

0 引言

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

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

1 抽取原理

1.1 元素的DOM路徑

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

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

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

又如,本例中“

床前明月光

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

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

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

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

元素。匹配過(guò)程如下:

表1

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

元素。匹配過(guò)程如下:

表2

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

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

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

元素,匹配過(guò)程如下:

表3

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

元素,匹配過(guò)程如下:

表4

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

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

例2中共有8個(gè)

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

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

表5

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

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

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

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

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

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

圖1 可視化模板配置流程

2.1 加載頁(yè)面

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

圖2 模板配置界面

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

2.2 捕捉元素

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

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

2.3 模板表示

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

整個(gè)DOM路徑可用List來(lái)表示。

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

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

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

2.4 生成模板

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

上述代碼主體部分是一個(gè)循環(huán),用于找出元素的DOM路徑。在循環(huán)體中可為每層路徑添加id、cls、text等屬性的限制條件,從而生成完整的抽取模板。說(shuō)明:實(shí)際程序根據(jù)用戶設(shè)置添加限制條件,此處為簡(jiǎn)化代碼省略了相關(guān)判斷。“元素抽取”是“生成模板”的逆過(guò)程,具體過(guò)程這里不再詳述。

3 測(cè)試總結(jié)

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

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

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

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

參考文獻(xiàn):

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

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

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

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

猜你喜歡
頁(yè)面可視化
微信群聊總是找不到,打開(kāi)這個(gè)開(kāi)關(guān)就好了
大狗熊在睡覺(jué)
刷新生活的頁(yè)面
自然資源可視化決策系統(tǒng)
思維可視化
師道·教研(2022年1期)2022-03-12 05:46:47
基于Power BI的油田注水運(yùn)行動(dòng)態(tài)分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
自然資源可視化決策系統(tǒng)
基于CGAL和OpenGL的海底地形三維可視化
“融評(píng)”:黨媒評(píng)論的可視化創(chuàng)新
同一Word文檔 縱橫頁(yè)面并存
主站蜘蛛池模板: 久久久黄色片| 亚洲第一香蕉视频| 深爱婷婷激情网| 伊人久久久久久久久久| 久久久噜噜噜| a天堂视频在线| 欧美不卡在线视频| 91啪在线| 国产日韩精品欧美一区灰| 成人一区专区在线观看| 熟妇人妻无乱码中文字幕真矢织江| 国内丰满少妇猛烈精品播| 国产欧美在线| 久久人妻系列无码一区| 精品国产Av电影无码久久久| 国产一区二区三区视频| 国产成人无码播放| 欧美一级高清片欧美国产欧美| 亚洲中文无码av永久伊人| 福利视频一区| 精品国产亚洲人成在线| 国产成人AV综合久久| 九色免费视频| 国产激爽大片在线播放| 色哟哟色院91精品网站| 久久精品人人做人人综合试看| 波多野结衣中文字幕久久| 免费一级毛片在线观看| 欧美福利在线播放| av色爱 天堂网| 区国产精品搜索视频| 四虎永久在线| 国产丰满成熟女性性满足视频| 国产超碰在线观看| 亚洲天堂视频网站| 日韩福利视频导航| 国产精品99一区不卡| 国产日韩精品欧美一区喷| 久久www视频| 久久黄色免费电影| 天天躁狠狠躁| 思思热精品在线8| 亚洲小视频网站| 国产91丝袜在线播放动漫| 精品1区2区3区| 国产幂在线无码精品| 国产又爽又黄无遮挡免费观看| 国产精品免费电影| 亚洲欧美不卡视频| 久久人妻系列无码一区| 国产特级毛片| 日韩二区三区| 99热亚洲精品6码| 熟妇丰满人妻| 国产精品欧美在线观看| 欧美人在线一区二区三区| 97色婷婷成人综合在线观看| a欧美在线| 2021国产v亚洲v天堂无码| 亚洲欧洲日韩综合| 亚洲精品男人天堂| 综合亚洲网| 精品综合久久久久久97超人| 一级毛片在线免费视频| 国模极品一区二区三区| 国产美女免费网站| 又粗又大又爽又紧免费视频| 日韩精品久久久久久久电影蜜臀| 91无码人妻精品一区| 欧美国产在线看| 最新无码专区超级碰碰碰| 婷婷在线网站| 亚洲欧美不卡中文字幕| 国产爽歪歪免费视频在线观看| 黄网站欧美内射| 国产污视频在线观看| 免费一级全黄少妇性色生活片| 国产不卡一级毛片视频| 亚洲成人播放| 国产在线自在拍91精品黑人| 亚洲va精品中文字幕| 国产杨幂丝袜av在线播放|