İbr*_*zen 1 asp.net url image external html-agility-pack
这段代码很好用...我没有问题。
var urls = from lnks in document.DocumentNode.Descendants()
where (lnks.Name == "a" && lnks.Attributes["href"] != null &&
(lnks.Attributes["href"].Value.ToString().Contains("jpg")
|| lnks.Attributes["href"].Value.ToString().Contains("png")
|| lnks.Attributes["href"].Value.ToString().Contains("bmp")
|| lnks.Attributes["href"].Value.ToString().Contains("jpeg")
|| lnks.Attributes["href"].Value.ToString().Contains("gif"))
)
select new
{
Url = lnks.Attributes["href"].Value
};
Run Code Online (Sandbox Code Playgroud)
但是这个总是返回null:
var urls = from lnks in document.DocumentNode.Descendants()
where (lnks.Name == "a" || lnks.Name == "img") &&
(lnks.Attributes["href"] != null || lnks.Attributes["src"] != null) &&
(
lnks.Attributes["href"].Value.ToString().Contains("jpg")
|| lnks.Attributes["href"].Value.ToString().Contains("png")
|| lnks.Attributes["href"].Value.ToString().Contains("bmp")
|| lnks.Attributes["href"].Value.ToString().Contains("jpeg")
|| lnks.Attributes["href"].Value.ToString().Contains("gif")
|| lnks.Attributes["src"].Value.ToString().Contains("jpg")
|| lnks.Attributes["src"].Value.ToString().Contains("png")
|| lnks.Attributes["src"].Value.ToString().Contains("bmp")
|| lnks.Attributes["src"].Value.ToString().Contains("jpeg")
|| lnks.Attributes["src"].Value.ToString().Contains("gif")
)
select new
{
Url = lnks.Attributes["src"] != null ? lnks.Attributes["src"].Value : lnks.Attributes["href"].Value
};
Run Code Online (Sandbox Code Playgroud)
我怎么了 这是拍摄图像的正确方法吗?
这是图像节点的代码。利用它创建一个函数,您可以将其用于任何节点:
GetLinksFromDocument(文档,nodeName,linkAttributeName)
using HtmlAgilityPack;
var urls = new List<string>();
var prefixList = new[] { "jpg", "jpeg", "png", "bmp", "gif" };
var document = new HtmlWeb().Load("http://jwillmer.de");
var imageNodes = document.DocumentNode.Descendants("img");
var imageLinks = imageNodes.Where(node => node.Attributes.Contains("src"))
.Select(node => node.Attributes["src"].Value);
urls.AddRange(imageLinks.Where(link => prefixList.Any(link.EndsWith)));
Run Code Online (Sandbox Code Playgroud)