0

我正在尝试从 wikia 转储中解析 xml 以提取子元素,然后在由 [[ 和 ]] 标识的文本中查找链接。因此,从一个wiki的以下示例片段中,我们应该得到

<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.6/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.6/ http://www.mediawiki.org/xml/export-0.6.xsd" version="0.6" xml:lang="en">
  <siteinfo>
    <sitename>Wookieepedia</sitename>
    <base>http:///10.8.66.74/wiki/Main_Page</base>
    <generator>MediaWiki 1.19.24</generator>
    <case>first-letter</case>
    <namespaces>
      <namespace key="-2" case="first-letter">Media</namespace>
...
      <namespace key="1202" case="first-letter">Message Wall Greeting</namespace>
    </namespaces>
  </siteinfo>
  <page>
    <title>Brianna</title>
    <ns>0</ns>
    <id>5</id>
...
    <text xml:space="preserve" bytes="36038">{{Eras|old|featured}}
{{Youmay|the [[Echani]] [[hybrid]]|the [[Brianna (Human)|Human]]}}
{{Character
|type=Jedi
...

以上将确定 Brianna 页面链接到 Echani 页面,以及“混合”和“Brianna(人类)”页面。

是否有一个很好的 python 媒体维基解析工具可以把它吐出来?性能不是主要问题,因为这是离线完成的,而且这些 wiki 并不庞大。

4

1 回答 1

0

您的方法不合理:改用链接 API。有多个Python 客户端。除非绝对强制,否则切勿自行解析 wikitext!

另请注意,对于除小型 wiki 之外的所有 wiki,Wikia 的转储已完全损坏(在随机点截断)。另请参阅https://archive.org/details/wikia_dump_20141219https://github.com/Wikia/app/pull/6118#issuecomment-183633326

于 2016-02-13T09:41:17.233 回答