[英]Using HTMLAgility Pack to Extract Links
考慮這段最簡單的代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HtmlAgilityPack;
namespace WebScraper
{
class Program
{
static void Main(string[] args)
{
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml("http://www.google.com");
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
}
}
}
}
這實際上沒有做任何事情,並且被復制/從各種其他StackOverflow的問題,如靈感此 。 編譯時會出現運行時錯誤,指出“對象引用未設置為對象的實例”。 突出了foreach線。
我無法理解,為什么這個簡陋,無辜和無用的代碼環境變得煩躁。
我還想知道,HTMLAgilityPack是否接受HTML類作為節點?
如果要從Web加載html,則需要使用HtmlWeb
對象:
HtmlWeb web = new HtmlWeb();
HtmlDocument doc =web.Load(url);
LoadHtml
將一串實際的HTML作為參數。 您可以從WebResponse.GetResponseStream()
傳遞加載流。
WebRequest req = WebRequest.Create( "http://www.google.com" );
Stream s = req.GetResponse().GetResponseStream();
doc.Load(s);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.