以编程方式从.NET中的WikiPedia获取文章

时间:2013-07-29 16:29:10

标签: c# wikipedia wikimedia linq-to-wiki

我需要以编程方式从维基百科中获取文章,我需要能够以HTML或原始文本的形式获取部分及其内容。

以此页面为例:http://en.m.wikipedia.org/wiki/LINQ

我发现了这个.NET Api,但它似乎不支持获取文章。

https://github.com/svick/LINQ-to-Wiki

我可以使用任何.NET库,还是必须解析网站的html内容?

P.S。我知道维基百科有一个API,但是我看不到任何关于如何使用它来做我需要的例子。

2 个答案:

答案 0 :(得分:6)

使用API​​获取文章文本的方式如下:

http://en.wikipedia.org/w/api.php?action=query&titles=LINQ&prop=revisions&rvprop=content

使用LINQ to Wiki,它是类似的:

string text =
    wiki.CreateTitlesSource("LINQ")
        .Select(p => p.revisions().FirstOrDefault().value)
        .ToEnumerable()
        .Single();

对于这种常见的操作,这是非常复杂的代码。我正在考虑为像这样的常见操作添加辅助方法,但我还没有达到这个目的。

答案 1 :(得分:4)

你可以通过以下两种方式做到这一点:

使用HtmlAgilityPack并解析html。从该页面的外观看,所有部分似乎都采用

格式
<div class="section">

另外,从LINQ to Wiki api中我可以看一眼,您可以按类别获取页面数据(我相信这也是您所指的部分)。需要进一步分析,但我建议你研究一下: