Не удаётся получить значение аттрибута с помощью HtmlAgilityPack

Я хочу извлечь данные с этого сайта -> https://www.onlinecarparts.co.uk/car-brands/spare-parts-vw/1500-1600-31/1681.html

using HtmlAgilityPack;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading.Tasks;

public class AutoPart
{
    public string ImageUrl { get; set; }
    public string Name { get; set; }
    public string Link { get; set; }
}

public class Node
{
    public string ImageUrl { get; set; }
    public string Name { get; set; }
    public List<AutoPart> Parts { get; set; }
}

public class Program
{
    static async Task Main(string[] args)
    {
        var url = "https://www.onlinecarparts.co.uk/car-brands/spare-parts-vw/1500-1600-31/1681.html"; // вкажіть URL вашої сторінки
        var web = new HtmlWeb();
        var doc = await web.LoadFromWebAsync(url);
        
        var nodes = new List<Node>();


        var nodeElements = doc.DocumentNode.SelectNodes("//div[contains(@class, 'col-6 col-sm-4 col-md-4 col-lg-3 col-xl-2')]");
        
        if (nodeElements != null)
        {
            foreach (var nodeElement in nodeElements)
            {
                var node = new Node
                {
                    ImageUrl = nodeElement.SelectSingleNode(".//div[@class='catalog-grid-item__image']/img")?.GetAttributeValue("src", ""),
                    Name = nodeElement.SelectSingleNode(".//div[@class='catalog-grid-item__name']/span")?.InnerText,
                    Parts = new List<AutoPart>()
                };

                var partElements = nodeElement.SelectNodes(".//div[contains(@class, 'row')]//div[contains(@class, 'col-12 col-sm-6 col-lg-4 col-xxl-3')]");

                if (partElements != null)
                {
                    foreach (var partElement in partElements)
                    {
                        var part = new AutoPart
                        {
                            ImageUrl = partElement.SelectSingleNode(".//span[@class='catalog-subcats__image']/img")?.GetAttributeValue("src", ""),
                            Name = partElement.SelectSingleNode(".//span[@class='catalog-subcats__name']")?.InnerText
                        };

                        var linkNode = partElement.SelectSingleNode(".//a[@href]");
                        if (linkNode != null)
                        {
                            part.Link = linkNode.GetAttributeValue("href", "");
                        }
                        else
                        {

                            var spanNode = partElement.SelectSingleNode(".//span[@data-link]");
                            if (spanNode != null)
                            {
                                part.Link = spanNode.GetAttributeValue("data-link", "");
                            }
                        }

                        node.Parts.Add(part);
                    }
                }

                nodes.Add(node);
            }


            foreach (var node in nodes)
            {
                Console.WriteLine($"Node: {node.Name}, Image: {node.ImageUrl}");
                foreach (var part in node.Parts)
                {
                    Console.WriteLine($"\tPart: {part.Name}, Image: {part.ImageUrl}, Link: {part.Link}");
                }
            }
        }
    }
}

Он содержит узлы автомобиля и подробную информацию об этих узлах. Выводит каждую деталь, но проблема с теми ссылками, которые мне нужны, если ссылка в href, то проблем нет, а если ссылка в <span data-link="...">, то ссылка не выводится.


Ответы (0 шт):