【发布时间】:2020-04-09 20:44:41
【问题描述】:
比如我有链接https://shikimori.one/animes/38256-magia-record-mahou-shoujo-madoka-magica-gaiden-tv/art
我想在 C# 中使用 HtmlAgilityPack 按名称“container packery”从那里获取 div 类列表。 (为了从所有链接下载图片)但这部分
var httpClient = new HttpClient();
var html = await httpClient.GetStringAsync(link);
var htmlDocument = new HtmlDocument();
htmlDocument.LoadHtml(link);
根据我的理解,从该页面https://shikimori.one/animes/38256-magia-record-mahou-shoujo-madoka-magica-gaiden-tv 向我返回 html 代码。所以,我无法解析“/art”中的任何内容。那是因为下一部分代码只返回 null。
var links = htmlDocument.DocumentNode.Descendants("div")
.Where(node => node.GetAttributeValue("class", "")
.Equals("menu-slide-outer x199")).ToList();
我错过了什么?
最终代码:
class Program
{
static List<string> sources = new List<string>();
[STAThread]
static void Main(string[] args)
{
var link = "https://shikimori.one/animes/1577-taiho-shichau-zo/art";
var web = new HtmlWeb();
web.BrowserTimeout = TimeSpan.FromTicks(0);
var htmlDocument = web.LoadFromBrowser(link);
var divlink = htmlDocument.DocumentNode.Descendants("div")
.Where(node => node.GetAttributeValue("class", "")
.Equals("container packery")).ToList();
var alink = htmlDocument.DocumentNode.Descendants("a")
.Where(node => node.GetAttributeValue("class", "")
.Equals("b-image")).ToList();
foreach(var a in alink)
{
sources.Add(a.GetAttributeValue("href", string.Empty));
}
Console.WriteLine("done");
Console.ReadKey();
}
【问题讨论】:
标签: c# html html-agility-pack