Web抓取工具未返回正确的URL

问题描述 投票:0回答:1

因此,我正在尝试使用C#开发Web刮板控制台应用程序。我无法从该网站检索帖子链接。 Hacker News

我可以检索链接以外的所有内容。当我尝试获取链接时,它返回的是投票按钮链接而不是帖子链接,所以我认为我选择了正确的标签。

我的代码:

var postsHTML = htmlDocument.DocumentNode.Descendants("table")
    .Where(node => node.GetAttributeValue("class", "")
    .Equals("itemlist")).ToList();

var postList = postsHTML[0].Descendants("tr")
    .Where(node => node.GetAttributeValue("class", "")
    .Equals("athing")).ToList();

然后在我的foreach循环中访问数组中的元素并检索我输入的链接:

foreach (var post in postList)
{

    Console.WriteLine("Title: " + post.Descendants("a")
        .Where(node => node.GetAttributeValue("class", "")
        .Equals("storylink")).FirstOrDefault().InnerText);


    Console.WriteLine("URI: " + post.Descendants("a").FirstOrDefault()
        .GetAttributeValue("href", ""));

    Console.WriteLine();

}

返回正确的标题,但我的URI似乎以]的形式出现>

标题:

朱尔斯·凡尔纳的最著名的书籍是54卷大作的一部分

URI:

投票?id = 22292003&how = up&goto = news

我希望返回的链接是帖子链接:

URI:

http://www.openculture.com/2020/02/jules-vernes-voyages-extraordinaires.html

因此,我正在尝试使用C#开发Web刮板控制台应用程序。我无法从该网站检索帖子链接。黑客新闻我可以检索链接以外的所有内容。当我尝试获取...

c# .net web web-scraping console-application
1个回答
0
投票

您第二次选择了错误的标签。您应该重复使用相同的选择器,因为Title和Url在同一标签中。

© www.soinside.com 2019 - 2024. All rights reserved.