从 <div> 中获取列表图像 url

Get a list image urls from inside of a <div>

我正在尝试使用 HtmlAgilityPack 从网页上的一组图像中获取图像 src="" 值并将它们添加到字符串列表中。

我尝试了以下方法,但我没有取回 img 标签。

    Dim htmlDoc As New HtmlDocument()

    htmlDoc.LoadHtml(GetPage(New Uri(product.Link)))

    For Each imageShow As HtmlNode In htmlDoc.GetElementbyId("slideShow").ChildNodes

        For Each image In imageShow.Elements("img")
            Console.WriteLine(image.Attributes("src").Value)
            product.OtherImages.Add(image.Attributes("src").Value)
        Next

    Next

网页如下

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        ...
    </head>
    <body>
        ....
        <div id="slideShow" class="slideShow">
            <div class="slides">
                <div class="slide">
                    <a href="http://mywebsite.com/images/some1.jpg">
                        <img src="http://mywebsite.com/images/some1.jpg" />
                    </a>
                <div>
                <div class="slide">
                    <a href="http://mywebsite.com/images/some2.jpg">
                        <img src="http://mywebsite.com/images/some2.jpg" />
                    </a>
                <div>
                ...
            </div>
        <div>
        ....
    </body>
</html>

我原以为 image.Attributes("src").Value 是“http://mywebsite.com/images/some1.jpg

我不知道 xPath 组件,但能够使用以下表达式 select 节点。

    Dim htmlDoc As New HtmlDocument()

    htmlDoc.LoadHtml(GetPage(New Uri(product.Link)))

    For Each slidesNode In htmlDoc.DocumentNode.SelectNodes("//div[@id='slideShow']//div[@class='slides']")

        For Each slide In slidesNode.SelectNodes(".//div[@class='slide']")
            Console.WriteLine(slide.SelectSingleNode(".//a//img").Attributes("src").Value)
        Next

    Next

我不确定是否有更快或更好的方法来访问幻灯片节点中的每个图像,但目前看来这可行。