Как использовать MediaWiki::DumpFile для преобразования XML-дампа Википедии в HTML?
На странице 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, чтобы сохранить все HTML-страницы (или текст, это не имеет значения) из XML-дампа. Вы можете мне помочь? А что такое *FH?
1 ответ
Решение
Я не использовал это, но документация для 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);