1

我正在使用 C# 的 LinqToWiki 库查询维基百科。特别是我想检索指向 wiki 页面 File:Cinnamomum_verum.jpg 的完整图像 url

使用官方媒体 Wiki API 请求是: http: //it.wikipedia.org/w/api.php ?action=query&prop=imageinfo&iiprop=url&titles=File:Cinnamomum_verum.jpg

正如您在浏览器中输入所看到的,xml 响应包含 imageinfo 结构,特别是 url 。

我无法使用 LinqToWiki 检索此信息。

我使用以下代码:

var c = wiki.CreateTitlesSource("File:Cinnamomum_verum.jpg");

var source = pages
                .Select(
                    p =>
                    PageResult.Create(
                        p.info,
                        p.imageinfo()
                            .Select(i => new { i.comment }).ToEnumerable())
                ).ToEnumerable();

            foreach (var item in list)
            {
                foreach (var item2 in item.Data)
                {
                    //retrieve all urls detected
                }
            }

第一个 foreach 语句正确地检索了一个元素(页面),但内部的一个没有返回。有人遇到同样的问题吗?我错过了什么吗?

4

1 回答 1

0

你没有遗漏任何东西,我只是没想到实际上不存在的页面(在你使用的 wiki 上)可能有有用的数据。我会尽快解决这个问题,但作为一种临时解决方法,您可以直接查询http://commons.wikimedia.org以获取那里的图像。

编辑:我已经更新了 LinqToWiki,新版本应该可以imageinfo正确处理。

于 2013-09-19T14:33:58.010 回答