如何使用MediaWiki::DumpFile将维基百科的XML转换为HTML?

3
在页面 MediaWiki::DumpFile 上,下面的代码已经存在:
  use MediaWiki::DumpFile;

  $mw = MediaWiki::DumpFile->new;

  $sql = $mw->sql($filename);
  $sql = $mw->sql(\*FH);

  $pages = $mw->pages($filename);
  $pages = $mw->pages(\*FH);

  $fastpages = $mw->fastpages($filename);
  $fastpages = $mw->fastpages(\*FH);

  use MediaWiki::DumpFile::Compat;

  $pmwd = Parse::MediaWikiDump->new;

我完全不懂Perl,不知道如何使用 $fastpages 从XML转储中保存所有HTML页面(或文本),你能帮助我吗?另外,* FH是什么?


在寻找提取库的过程中,我发现了这个优秀的页面:http://medialab.di.unipi.it/wiki/Wikipedia_Extractor 。它可以替代所提出的方法。 - DSblizzard
1个回答

3

我没有使用过它,但MediaWiki::DumpFile::FastPages的文档提供了以下示例,用于在转储文件中打印每篇文章的标题和文本:

use MediaWiki::DumpFile::FastPages;

$pages = MediaWiki::DumpFile::FastPages->new($file);
$pages = MediaWiki::DumpFile::FastPages->new(\*FH);

while(($title, $text) = $pages->next) {
  print "Title: $title\n";
  print "Text: $text\n";
}

这会将所有内容写入 stdout。创建 MediaWiki::DumpFile::FastPages 对象时,可以传递文件名,例如:
$file = "/path/to/dump/file";
$pages = MediaWiki::DumpFile::FastPages->new($file);

或者是对文件句柄的引用,例如:

open FH, "<", "/path/to/dump/file" or die "Failed to open file: $!";
$pages = MediaWiki::DumpFile::FastPages->new(\*FH);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接