繁体   English   中英

使用HTMLAgility Pack提取链接

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM