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

支持DOM模板可視化配置的網頁抽取方法

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

李健,馬延周

(解放軍信息工程大學洛陽校區基礎部,洛陽 471003)

0 引言

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

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

1 抽取原理

1.1 元素的DOM路徑

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

例1有網頁內容如下:

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

又如,本例中“

床前明月光

”標簽在文檔樹中的層次路徑為:

1.2 根據DOM路徑抽取元素

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

根據路徑1,可在例1中匹配到1個

元素。匹配過程如下:

表1

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

元素。匹配過程如下:

表2

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

例2:有網頁內容如下:

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

元素,匹配過程如下:

表3

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

元素,匹配過程如下:

表4

1.3 為DOM路徑設置條件

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

例2中共有8個

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

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

表5

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

例3:有網頁內容如下:

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

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

2 關鍵技術

可視化模板配置的主要流程如圖1所示。本節將介紹模板配置各環節的關鍵技術實現。

圖1 可視化模板配置流程

2.1 加載頁面

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

圖2 模板配置界面

使用GeckoWebBrowser控件加載網頁的代碼如下:

2.2 捕捉元素

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

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

2.3 模板表示

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

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

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

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

程序在保存或加載模板時,會對內部數據對象和外部XML文件進行格式轉換。轉換過程這里不再詳述。

2.4 生成模板

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

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

3 測試總結

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

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

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

圖3 新聞自動采集系統

參考文獻:

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

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

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

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

猜你喜歡
頁面可視化
微信群聊總是找不到,打開這個開關就好了
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
自然資源可視化決策系統
北京測繪(2022年6期)2022-08-01 09:19:06
思維可視化
師道·教研(2022年1期)2022-03-12 05:46:47
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
自然資源可視化決策系統
北京測繪(2021年7期)2021-07-28 07:01:18
基于CGAL和OpenGL的海底地形三維可視化
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
同一Word文檔 縱橫頁面并存
主站蜘蛛池模板: 国产91特黄特色A级毛片| 色一情一乱一伦一区二区三区小说| 国产精品美女网站| 国产自无码视频在线观看| 美美女高清毛片视频免费观看| 成人久久精品一区二区三区| 国产不卡在线看| 国产欧美在线观看精品一区污| 成色7777精品在线| 日本高清视频在线www色| 亚洲一区二区视频在线观看| jizz在线免费播放| 91福利免费| 国产第一页亚洲| 欧美精品一区在线看| 69国产精品视频免费| 欧美一区二区精品久久久| 婷婷在线网站| 成人无码区免费视频网站蜜臀| 就去色综合| 手机在线免费毛片| 四虎影视8848永久精品| 亚洲精品视频免费观看| 精品国产成人av免费| 亚洲欧美色中文字幕| 四虎精品黑人视频| 另类综合视频| 第九色区aⅴ天堂久久香| 97久久免费视频| 亚洲第一极品精品无码| 伊人网址在线| 日本欧美成人免费| 午夜丁香婷婷| 欧美色图久久| 国产69精品久久久久孕妇大杂乱 | 国产精品视频导航| 成人另类稀缺在线观看| 欧美福利在线播放| 免费国产一级 片内射老| 精品小视频在线观看| 免费国产一级 片内射老| 久久99这里精品8国产| 粉嫩国产白浆在线观看| 99久久国产综合精品2020| 久久久精品无码一二三区| 中文字幕不卡免费高清视频| 91av成人日本不卡三区| 亚洲成人一区二区三区| 成年看免费观看视频拍拍| 992tv国产人成在线观看| 美女扒开下面流白浆在线试听| 一本大道视频精品人妻| 婷婷综合亚洲| 欧美69视频在线| 美女高潮全身流白浆福利区| 欧美综合在线观看| 亚洲美女AV免费一区| 四虎影视永久在线精品| 欧美在线精品一区二区三区| 黄色网站不卡无码| 国产精品分类视频分类一区| 秋霞国产在线| 人妻精品久久无码区| 啦啦啦网站在线观看a毛片| 欧美成人一级| 久草视频中文| 亚洲中文字幕无码爆乳| 伊大人香蕉久久网欧美| 国产成人精品一区二区三在线观看| 国产色爱av资源综合区| 日本爱爱精品一区二区| 天天综合色天天综合网| 综合网天天| 狠狠色香婷婷久久亚洲精品| 国产内射在线观看| 另类专区亚洲| 免费国产一级 片内射老| av在线无码浏览| 日韩美一区二区| 国产三级国产精品国产普男人| 亚洲精品在线91| 四虎永久在线|