我在網頁探勘中下了許多功夫,例如之前發表一篇 Regular Expression 與 C# Regex 教學 的文章,頗受歡迎。
由於 Regular Expression 並不好學,需要熟悉 Regular Expression 語法邏輯與組合去對應網頁語法與結構,才能將有用資料擷取出來分析,甚至放到資料庫儲存,已供往後做成報表研究。但是如果網頁結構改變,整個 Regular Expression 語法都要改變,而每一條語法並不是這麼好下,可能要花一些時間去瞭解網頁結構的狀況而定。
HtmlAgilityPack 套件,類似視窗程式的 WebBrowser 一樣,先載入它的網站狀況,它可以讓剖析鬆散格式 HTML 的工作就像剖析 XML 一樣簡單,只要依照他網頁結構找出它的 xpth,便可輕鬆擷取出資料。
首先,先到Html Agility Pack下載 dll,目前版本為 1.4.0。
在程式碼中,先加入這個 dll,接著再 *.cs 引用:
using HtmlAgilityPack;
目前我拿奇摩首頁 ( http://tw.yahoo.com/ ),做擷取範例,抓出所有連結的 html 語法。以下為範例程式碼:
string url = "http://tw.yahoo.com/"; HtmlWeb web = new HtmlWeb(); HtmlDocument doc = web.Load(url); HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//a"); foreach (HtmlNode node in nodes) { Console.WriteLine(node.OuterHtml); }
xpath 語法參考:XPath 語法
這樣變輕輕鬆鬆地擷取出所有連結。
歡迎大家來討論,目前我也正在學習中。
回目錄
回首頁
沒有留言 :
張貼留言