En la $url podemos ver que consta de varios parámetros, el parámetro page es la página de Albert Einstein, este dato lo obtenemos de la dirección del artículo que nos interesa:
es.wikipedia.org/wiki/Albert_Einstein
In this code we can see how to extract information from Wikipedia API using PHP and Curl, specifically will export one paragraph of a particular article.
In the $ url can see which consists of several parameters, the parameter page is the page of Albert Einstein, this data we get from the direction of the article we are interested in:
es.wikipedia.org / wiki / Albert_Einstein
<?
$url='http://es.wikipedia.org/w/api.php?action=parse&page=Albert_Einstein&format=json&prop=text§ion=1&rvsection=2rvparse&rvprop=content';
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_USERAGENT, "TestScript");
$c = curl_exec($ch);
$json = json_decode($c);
$content = $json->{'parse'}->{'text'}->{'*'};
$final = strip_tags($matches[0], "<p>, <br/>");
echo nl2br($final);
?>
Otra Opción:
<?
$url = 'http://es.wikipedia.org/w/api.php?action=parse&page=Albert_Einstein&format=json&prop=text§ion=1&rvsection=2rvparse&rvprop=content';
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_USERAGENT, "TestScript");
$c = curl_exec($ch);
$json = json_decode($c);
$content = $json->{'parse'}->{'text'}->{'*'};
$pattern = '#<p>(.*)</p>#Us';
if(preg_match($pattern, $content, $matches))
{
print strip_tags($matches[1]);
}
?>
En este caso, nos mostrará el párrafo del nacimiento de Albert Einstein.
Paul, he creado un script que selecciona información desde el html que retorna la api de wiki, me gustaria saber si conoces una forma de que wikipedia retorne un JSON limpio sin html?
ResponderEliminarHola Felipe,
Eliminarde momento no he encontrado forma para que Wikipedia te envíe el código limpio, aunque investigaré un poco a ver que encuentro.
De todas formas en los ejemplos de arriba se eliminan todas las etiquetas.
Un saludo!