php и MediaWiki - PullRequest
       6

php и MediaWiki

1 голос
/ 12 апреля 2011

Я ищу, чтобы получить XML страницы Википедии, используя их API.Я использую следующий URL: http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xml&redirects&titles=dog

Я видел это , но это не помогло.Что бы я ни делал, на самом деле я ничего не возвращаю в $ c, и я не могу понять, почему.Я могу сделать file_get_contents с простым текстовым файлом, и он работает просто отлично.Кто-нибудь еще может проверить, что это работает?

<?php
$url = 'http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xml&redirects&titles=Main%20Page';
$c = file_get_contents($url);
echo $c;
?>

РЕДАКТИРОВАТЬ Я также попробовал cURL, доступный на этой странице, который также не работает:

$url = 'http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xml&redirects&titles=Main%20Page';
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$c = curl_exec($ch);
echo $c;

1 Ответ

4 голосов
/ 12 апреля 2011

Википедия требует, чтобы вы указали описательный пользовательский агент, выполнив что-то вроде этого:

<?php
$url = 'http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xml&redirects&titles=Main%20Page';
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_USERAGENT, "MyCoolTool (+http://example.com/MyCoolToolPage/)");
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$c = curl_exec($ch);
echo $c;
?>

Вам следует использовать строку user-agent, которая описывает ваш сайт, и вам не следует подделывать пользовательский агент веб-браузера, иначе вас могут заблокировать за подозрение (источник: Политика WikiMedia User-Agent )

...