Invocando o MediaWiki Página Analisador para obter HTML?
Pergunta
Eu gostaria de obter o HTML de uma página MediaWiki, que é que eu quero executar o MediaWiki Markup através do analisador. Agora, eu sei que eu poderia usar apenas alguns Analisador externo, mas a maioria deles não suportam inclusão e (naturalmente) Extensions, por isso a minha saída será diferente.
Como tenho acesso à instalação MediaWiki, eu me pergunto se eu posso apenas usar o built-in analisador para me processar a página. Eu não quero fazer tela raspagem por causa de todas as outras coisas na página (navegação, barra lateral, JavaScript e CSS inclui etc.), eu literalmente só quero o corpo.
Se é importante, ele está sendo executado MediaWiki 1.12 em PHP 5.2.
Solução
Use action = tornar; por exemplo index.php? title = article_title & action = tornar
Outras dicas
Sim, você pode fazer isso, como uma questão de fato, eu lembro de ter feito isto mesmo em muitas das minhas extensões disponíveis aqui .
encontrado da minha extensão que faz isso:. SecureTransclusion
trecho seguinte:
public function mg_strans( &$parser, $page, $errorMessage = null, $timeout = 5 ) {
if (!self::checkExecuteRight( $parser->mTitle ))
return 'SecureTransclusion: '.wfMsg('badaccess');
$title = Title::newFromText( $page );
if (!is_object( $title ))
return 'SecureTransclusion: '.wfMsg('badtitle')." ($page)";
if ( $title->isTrans() )
$content = $this->getRemotePage( $parser, $title, $errorMessage, $timeout );
else
$content = $this->getLocalPage( $title, $errorMessage );
$po = $parser->parse( $content, $parser->mTitle, new ParserOptions() );
$html = $po->getText();
return array( $html, 'noparse' => true, 'isHTML' => true );
}
Que tal usar o analisador MediaWiki atual? Basta pegar a saída convertida, dizem
a partir <!-- start content -->
a qualquer <div class="printfooter">
ou NewPP limit report
. Este último começa estatísticas do pré-processador. Dessa forma, todos os quadros laterais e banners são omitidos.