Comment récupérer plusieurs pages web en changeant une variable dans l'URL
Bonjour,
J'utilise l'API Mediawiki pour récupérer le contenu de Wikipedia et du Wiktionnaire. Pour cela j'utilise une URL qui a des paramètres.
Pour récupérer une page web, j'ai utilisé curl et j'ai décodé le JSON afin d'avoir les valeurs du fichier. La valeur en question s'appelle "cmcontinue" et c'est la valeur de celle-ci qui permet de passer à la page suivante.
Je n'arrive qu'à récupérer une seule page, y a un problème avec cette variable, dans les fichiers JSON j'ai la même structure et les mêmes noms de variables du coup, il retient toujours la première valeur.
Comment faire dans ce cas-là ?
Quand je modifie cmcontinue = array() puis cmcontinue[], j'ai des erreurs et je reste toujours à la première page.
Code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
<?php
$cmcontinue= NULL;
do
{
$wikipediaURL = "https://fr.wiktionary.org/w/api.php?action=query&list=categorymembers&cmtitle=Category:Verbes_en_fran%C3%A7ais&utf8&cmprop=title&utf8&prop=extracts&cmlimit=500&format=json&cmcontinue=".$cmcontinue;
$ch = curl_init(); // 1) Initialiser cURL
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); /*-----------Prise en charge des SSL ----------*/
curl_setopt($ch, CURLOPT_URL, $wikipediaURL); // 2) Fournir à cURL l'URL de la page à récupérer
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 3) On lui demande de nous rerourner la page
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
/*------------------- Enregristrer le contenu de la page dans un fichier ------------------------*/
$fichier = fopen("example.json", "a+");
curl_setopt($ch, CURLOPT_FILE, $fichier);
curl_setopt($ch, CURLOPT_HEADER, 0);
$resultat = curl_exec ($ch); // 4) Exécuter la req qui retourne le contenu de la page dans un TAB
curl_close($ch); // 5) On ferme la connexion à cURL
echo $resultat;
//-------------Récupérer le cmcontinue -----------*/
// Parser le json avec une simple fonction
$json = file_get_contents("example.json");
//var_dump(json_decode($json));
$parsed_json = json_decode($json);
$cmcontinue = $parsed_json->{'continue'}->{'cmcontinue'};
echo "\n le cmcontinue est \n".$cmcontinue;
}
while ($cmcontinue != NULL);
$cmcontinue = $parsed_json->{'continue'}->{'cmcontinue'};
echo "\n le cmcontinue est \n".$cmcontinue;
fclose($fichier);
?> |
Merci