2015-10-14 67 views
0

我知道这个问题可能比它看起来更简单,但在阅读大量材料后,我感到非常困惑。因此,我已经下载了一个维基百科转储(这一个是精确的:enwiktionary-20151002-pages-articles-multistream.xml.bz2 - 这应该包含所有英文维基词典的文章)。我想要的是通过标题获取特定文章的内容(与在维基百科中搜索它的方式相同)。从维基百科获取文章XML转储 - 通过标题

注:我不想要HTML(由维基百科产生)。我想要“真实”的内容,就像你在维基百科中“编辑”任何文章时看到的一样。

几句话:

  • 搜索的标题,例如文章“书”
  • 获取内容

我应该如何着手呢?


P.S.我不是在寻找一种语言特定的解决方案。我只需要一些关于如何处理这个问题的想法。

+1

不熟悉维基百科转储语法,你可以发布一个样本或链接到文档 – Steve

+0

随着差不多12k代表你应该知道这些问题属于**“主要基于意见的”**类别 –

+0

我会开始通过解压'bz2'文件,因为似乎没有办法以压缩格式处理它 – RiggsFolly

回答

0

如果你只后的信息的短位的时候,你可以使用维基百科的JSON API ... https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=&titles=book

如果你想要完整的文章,那么我相信你可以使用这个: https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&explaintext=&titles=book

这两个来源的区别在于,第一个我们设置了'exintro',第二个链接我们设置了'exsertintext'。这些部分使用“\ n \ n \ n ===”和“=== \ n”分开。有了这些信息,您可以挑出一个部分的结尾,并找到一个新部分的开始部分以及部分名称。

欲了解更多信息,请https://en.wikipedia.org/w/api.php?action=help&modules=query%2Bextracts

抱歉,这不是XML。

+0

这个问题在于它利用了在线维基百科。或者它需要一个准完整的离线mediawiki安装。下载转储并希望脱机的原因是速度。 (我需要执行一些大规模的处理) –

+1

@ Dr.Kameleon好吧,它似乎提供了SQL转储以及 - 我会建议使用它,然后使用常规的SQL查询。用这么庞大的数据集来解析XML会更有效率,除非你有很多内存并且可以将整个内容读入内存 – Steve