我想从网站链接构建图像列表,然后再将图像保存/下载到硬盘。
这就是我从网站/网址获取链接的方式:
private List<string> getLinks(HtmlAgilityPack.HtmlDocument document)
{
List<string> mainLinks = new List<string>();
var linkNodes = document.DocumentNode.SelectNodes("//a[@href]");
if (linkNodes != null)
{
foreach (HtmlNode link in linkNodes)
{
var href = link.Attributes["href"].Value;
if (href.StartsWith("http://") ==true || href.StartsWith("https://") ==true || href.StartsWith("www.") ==true) // filter for http
{
mainLinks.Add(href);
}
}
}
return mainLinks;
}
然后我在这个测试函数中使用从 url 构建所有链接的列表:
private List<string> test(string url, int levels, DoWorkEventArgs eve)
{
HtmlWeb hw = new HtmlWeb();
List<string> webSites;
try
{
doc = hw.Load(url);
webSites = getLinks(doc);
//retriveImages();
因此,作为列表的网站将包含来自主网站 url 的所有链接,例如,如果它的 google.com 则在网站中,我将有 19 个项目,每个项目都是来自 google.com 的链接
并且retrieveImages() 是:
private void retrieveImages()
{
var nodes = doc.DocumentNode.SelectNodes("//img");
foreach (var node in nodes)
{
List<string> images = new List<string>();
images.Add(node.Name);
}
}
并且retrieveImages() 肯定不是好的代码,也不能正常工作。如果我使用它移动 // 并调用retrieveImages() 没有发生任何事情网站列表是空的。
我想要做的是在函数retrieveImages() 中从当前站点/链接中构建图像列表,然后将图像下载到硬盘上我构建的列表中的图像。