HtmlAglityPack使用心得

2022-02-16 04:44:46 字數 900 閱讀 2876

這學期的軟體工程課,幾個團隊合作乙個比較大的專案,然後我們團隊主要負責爬蟲獲得的資料的處理,抽取元資料,去重等工作。因為不知道爬蟲得到的資料具體是什麼樣子的,所以我們的工作還要能夠對得到的html文件能夠做乙個解析,我主要負責這一塊的工作。

因為html不是一種對語法要求不是特別嚴格的標記語言,所獲得的乙個html的檔案中可能就會存在各種各樣的問題,比如乙個標籤沒有閉合,所以在解析的過程中所面對的情況的複雜度就比較大。通過在網路上查詢資料,最終我還是選擇了採用開源的htmlaglitypack來解析html網頁。

htmlaglitypack將html我網頁建立成一棵dom樹,然後我們就可以通過xpath來對每個節點進行訪問,下面就主要介紹一下我做專案的過程中使用到的一些方法:

html的讀取

hap會對讀取到的html儲存到htmldocument類中,htmldocumen內部是乙個dom樹(dom是文件物件模型),對於htmldocument的讀入有很多方法。我主要使用的是:

1 streamreader sr = new streamreader("

in.html

"); //

儲存在檔案中

2 htmldocument htmldocument = new htmldocument(sr);

hap提供了多種過載方式,其中一些常使用到的有:

1 htmldocument.load(string path); //

從檔案讀取

2 htmldocument.load(stream stream); //

從輸入流

3htmldocument.load(textreader textreader);

4 htmldocument.loadhtml(string htmlstring);

VMware License Server使用經驗

近期在測試vmware server,在使用vmware license server的時候碰到一些問題,經過兩天的實驗,問題得以解決,現記錄如下,以供朋友們參考。1 複製license檔案 在安裝vmware virtualcenter的時候,會一同安裝license server伺服器。如果你在...

Django Rest framework使用例項

一 修改配置檔案 setting.py django.contrib.admin django.contrib.auth django.contrib.contenttypes django.contrib.sessions django.contrib.messages django.contri...

Android AlarmManager 使用指南

intent intent new intent intent.setaction updatemgr.check update action 如果你的flag 是flag one shot,那麼你就只能受到一次廣播。如果使用setrepeat,你設定的intervalmills 少於60s,那麼就...