从维基媒体下载图像

时间:2015-04-01 17:34:46

标签: c# asp.net .net musicbrainz

我已经阅读了一些文档,经过一些研究后我不确定是否有一种简单的方法可以做到这一点。

我正在使用MusicBrainz来获取艺术家的形象。这产生了这个URL

https://commons.wikimedia.org/wiki/File:Michael_Jackson_in_1988.jpg

我想下载图像(我已经解决了),但我不知道正确的程序将如何或是什么?

我已阅读了一些链接,所有内容似乎相当陈旧,包括:

Download image from the site in .NET/C#

它没有回答我的问题,因为我已经有了下载图像的方法。在这种情况下,我可以使用包含下载链接的上述链接获取图像URL。

我确实阅读了一个针对API的链接,但是又过了一段时间,并且帮助页面没有提及这个API(因此它可能是第三方)。

我有下载图片的所有内容,它只是获取正确的URL,可以在我上面发布的链接上找到但我不知道如何提取URL?

1 个答案:

答案 0 :(得分:0)

您可以使用Html Agility Pack获取html页面中的所有<a href元素,然后查找具有图片类型扩展名的元素。

var document= new HtmlWeb().Load("https://commons.wikimedia.org/wiki/File:Michael_Jackson_in_1988.jpg");
var allhrefs = document.DocumentElement.SelectNodes("//a[@href]");

我确定他们有一个共同的结构,所以我会让你弄清楚。快速浏览它看起来像是原始图像的第一个<a href点。

var imagelink = allhrefs.FirstOrDefault();


编辑:如果您想要更加小心,可以通过查找class='fullImageLink' div id='file'来过滤节点。这似乎将<a href托管到原始图像。