无法使用 html 敏捷包 c# 输出某个节点

Cannot output a certain node with html agility pack c#

我正在尝试构建一个项目以熟悉 c#,我想提取将某个文件添加到网站的日期。在我的示例中,我使用了 https://thepiratebay.org/search/rick%20and%20morty/0/99/0

问题是我想提取数据,一开始尝试这样的事情:

static void Main(string[] args)
    {
        string url = "https://thepiratebay.org/search/rick%20and%20morty/0/99/0";
        HtmlWeb web = new HtmlWeb();
        HtmlDocument doc = web.Load(url);
        foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//*[@id='searchResult']/tbody/tr[1]/td[2]/font"))
        {
            Console.WriteLine("you are looking for: " + node.InnerHtml.ToString());
        }

        Console.ReadKey();
    }
}

运行 之后程序抛出 NullReferenceException。 有人可以指导我吗?

检查您的 XPath,NullReferenceException 被抛出,因为网页上的 searchResult 下没有 tbody 元素。

如果我们看一下 html 的片段:

<table id="searchResult">
    <thead id="tableHead">
    ...
    </thead>
    <tr>
        <td class="vertTh">
            <center>
                <a href="/browse/200" title="More from this category">Video</a><br>
                (<a href="/browse/208" title="More from this category">HD - TV shows</a>)
            </center>
        </td>
        <td>
            <div class="detName">
                <a href="/torrent/12678054/Rick_and_Morty_Season_2_[WEBRIP]_[1080p]_[HEVC]" class="detLink" title="Details for Rick and Morty Season 2 [WEBRIP] [1080p] [HEVC]">
                    Rick and Morty Season 2 [WEBRIP] [1080p] [HEVC]
                </a>
            </div>
            <a href="magnet:?xt=urn:btih:0494a80532b5b05dde567c61220d93406b7e22e7&dn=Rick+and+Morty+Season+2+%5BWEBRIP%5D+%5B1080p%5D+%5BHEVC%5D&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Fpublic.popcorn-tracker.org%3A6969" title="Download this torrent using magnet">
                <img src="//thepiratebay.org/static/img/icon-magnet.gif" alt="Magnet link">
            </a>
            <a href="//cdn.bitx.tv/bx.php?torrent=bWFnbmV0Oj94dD11cm46YnRpaDowNDk0YTgwNTMyYjViMDVkZGU1NjdjNjEyMjBkOTM0MDZiN2UyMmU3JmRuPVJpY2srYW5kK01vcnR5K1NlYXNvbisyKyU1QldFQlJJUCU1RCslNUIxMDgwcCU1RCslNUJIRVZDJTVEJnRyPXVkcCUzQSUyRiUyRnRyYWNrZXIubGVlY2hlcnMtcGFyYWRpc2Uub3JnJTNBNjk2OSZ0cj11ZHAlM0ElMkYlMkZ6ZXIwZGF5LmNoJTNBMTMzNyZ0cj11ZHAlM0ElMkYlMkZ0cmFja2VyLmNvcHBlcnN1cmZlci50ayUzQTY5NjkmdHI9dWRwJTNBJTJGJTJGcHVibGljLnBvcGNvcm4tdHJhY2tlci5vcmclM0E2OTY5&affid=1337&imdb=" target="_blank" title="Play now using BitX">
                <img src="//thepiratebay.org/static/img/icons/icon-bitx.png" alt="Play link">
            </a>
            <img src="//thepiratebay.org/static/img/icon_comment.gif" alt="This torrent has 7 comments." title="This torrent has 7 comments.">
            <a href="/user/.BONE.">
                <img src="//thepiratebay.org/static/img/vip.gif" alt="VIP" title="VIP" style="width:11px;" border='0'>
            </a>
            <font class="detDesc">
                Uploaded 11-03&nbsp;2015, Size 2.23&nbsp;GiB, ULed by
                <a class="detDesc" href="/user/.BONE./" title="Browse .BONE.">
                    .BONE.
                </a>
            </font>
        </td>
        <td align="right">759</td>
        <td align="right">130</td>
    </tr>
...

您想要的部分在 //table[@id='searchResult']/tr/td/font[@class='detDesc'] 下将 SelectNodes 中的 XPath 参数更改为此,并输出 InnerText,得到您想要的:

Uploaded 11-03&nbsp;2015, Size 2.23&nbsp;GiB, ULed by .BONE.
Uploaded 07-26&nbsp;2015, Size 2.98&nbsp;GiB, ULed by Anonymous
Uploaded 11-03&nbsp;2015, Size 3.21&nbsp;GiB, ULed by .BONE.
Uploaded 10-12&nbsp;2015, Size 5.07&nbsp;GiB, ULed by ToyUp
Uploaded 04-12&nbsp;2014, Size 146.87&nbsp;MiB, ULed by eztv
Uploaded 04-12&nbsp;2014, Size 164.37&nbsp;MiB, ULed by eztv
Uploaded 04-12&nbsp;2014, Size 171.46&nbsp;MiB, ULed by eztv
Uploaded 04-12&nbsp;2014, Size 137.39&nbsp;MiB, ULed by eztv
Uploaded 04-12&nbsp;2014, Size 180.05&nbsp;MiB, ULed by eztv
Uploaded 04-12&nbsp;2014, Size 145.15&nbsp;MiB, ULed by eztv
Uploaded 04-12&nbsp;2014, Size 115.92&nbsp;MiB, ULed by eztv
Uploaded 04-12&nbsp;2014, Size 134.29&nbsp;MiB, ULed by eztv
Uploaded 04-12&nbsp;2014, Size 171.86&nbsp;MiB, ULed by eztv
Uploaded 04-12&nbsp;2014, Size 141.65&nbsp;MiB, ULed by eztv
Uploaded 04-15&nbsp;2014, Size 162.42&nbsp;MiB, ULed by eztv
Uploaded 04-15&nbsp;2014, Size 5.78&nbsp;GiB, ULed by frostyon420
Uploaded 10-05&nbsp;2015, Size 142.63&nbsp;MiB, ULed by ettv
Uploaded 07-02&nbsp;2016, Size 4.62&nbsp;GiB, ULed by AtaraxiaPrime
Uploaded 08-24&nbsp;2015, Size 143.38&nbsp;MiB, ULed by TvTeam
Uploaded 07-27&nbsp;2015, Size 207.89&nbsp;MiB, ULed by ettv
Uploaded 07-28&nbsp;2015, Size 941.23&nbsp;MiB, ULed by frostyon420
Uploaded 06-02&nbsp;2014, Size 1.02&nbsp;GiB, ULed by Minified
Uploaded 09-21&nbsp;2015, Size 455.91&nbsp;MiB, ULed by EtHD
Uploaded 04-18&nbsp;2014, Size 5.24&nbsp;GiB, ULed by nsj7762
Uploaded 08-31&nbsp;2015, Size 165.22&nbsp;MiB, ULed by TvTeam
Uploaded 06-28&nbsp;2016, Size 8.69&nbsp;GiB, ULed by fauxcon
Uploaded 08-03&nbsp;2015, Size 198.86&nbsp;MiB, ULed by TvTeam
Uploaded 08-03&nbsp;2015, Size 190.11&nbsp;MiB, ULed by punsher
Uploaded 08-17&nbsp;2015, Size 853.25&nbsp;MiB, ULed by frostyon420
Uploaded 09-28&nbsp;2015, Size 399.73&nbsp;MiB, ULed by Joker__TPB