星期六, 6月 23, 2018

[C#] 擷取網頁資料 筆記

最快速簡單的方法就是使用 HTML Agility Pack。

1.首先, 用 NuGet 安裝。如果用NuGet 套件管理員無法安裝。
   可能是版本不相容,可改用主控台模式安裝指定版本。如下

PM> Install-Package HtmlAgilityPack -Version 1.4.9.5

2.接著如以下範例,取得網頁資料

HtmlWeb client = new HtmlWeb(); client.LoadAsync("http://astro.click108.com.tw/daily_10.php?iAstro=10");

3.再用 XPath 取得節點資料, XPath 路徑可使用瀏覽器+套件

HtmlNodeCollection nameNodes = doc.DocumentNode.SelectNodes(@"//div[@class='ROOT']/p/a[2]"); foreach (HtmlNode node in nameNodes) { string strValue = (node.InnerText).Substring(5); //擷取字串 Debug.WriteLine(strValue); }




參考網頁:
https://dotblogs.com.tw/v6610688/2013/11/02/parsing_html_by_html_agility_parser_on_windows_phone_8

https://msdn.microsoft.com/zh-tw/ee787055.aspx

https://blog.exfast.me/2016/07/c-use-the-htmlagilitypack-to-collect-web-pages/