Facebook
Télécharger
Noter:

Ajouté le 2022-11-25
Visionné 10610 fois
4.5/5 (2)

Scraper du contenu en PHP pour récupérer les URL

Description

Pour récupérer ou scraper/scrapper (scraping, en Anglais) les liens d'une page internet avec PHP, le code prend récupère les URL et les sauvegarde dans un fichier .txt

Télécharger le script
(Téléchargé 30 fois)


Deux versions pour crawler, scraper ou sniffer une page



/////////////////
//CONFIGURATION :
/////////////////

//fichier dans lequel on viendra mettre nos liens scrappés
$fichier_de_destination = "liens-url.txt";

//mettez ici l'URL à scraper
$url = 'https://www.c2script.com/scripts/scraper-une-page-web-en-php-s19.html';


///////////
// SCRIPT :
///////////

//on va lire la page à copier, on initialise cURL
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

//pour retourner le contenu
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//au cas où l'URL est en https
if(substr($url, 0, 5)=='https')
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

//on simule un faux USER_AGENT pour faire croire qu'on est humain (sinon certains sites peuvent bloquer l'accès en mettant une erreur 403 Forbidden)
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201');

//on vérifie s'il ya pas d'erreur et on récupère le résultat
if(!$contenu_de_la_page = curl_exec($ch))
exit("Erreur cURL : " . curl_error($ch));

//récupère tous les liens de la page avec cette regex
preg_match_all("#(https?://[\w./?&%:;=-]+)#is", $contenu_de_la_page, $out);

//notre retour (les liens de la page qu'on sauvera dans le txt)
$liens_de_la_page = '';

//on explore tous les liens un par un
foreach($out[0] as $lien){

//on retourne le lien en faisant un saut de ligne pour placer la prochaine url en dessous
//remarque: le saut de ligne fonctionne seulement avec les double guillemets et ne fonctionnera pas avec des simple, ex : '\n'
$liens_de_la_page .= "$lien\n";

}

//en fin on colle les liens dans un fichier texte avec le même nom que la page qui vient d'être scannée
file_put_contents($fichier_de_destination, $liens_de_la_page);
echo "OK, fichier <a href='$fichier_de_destination'>$fichier_de_destination</a> créé<br/>";


//en fin, on ferme cURL
curl_close($ch);
/////////////////
//CONFIGURATION :
/////////////////

//la page à scrapper
$page_a_scrapper = "page.html";

//fichier dans lequel on viendra mettre nos liens scrappés
$fichier_de_destination = "liens-page.txt";


///////////
// SCRIPT :
///////////

//récupère le contenu la page à scraper
$fichier = file_get_contents($page_a_scrapper);

//récupère tous les liens de la page avec cette regex
preg_match_all("#(https?://[\w./?&%:;=-]+)#is", $fichier, $out);

//notre retour (les liens de la page qu'on sauvera dans le txt)
$liens_de_la_page = '';

//on explore tous les liens un par un
foreach($out[0] as $lien){

//on retourne le lien en faisant un saut de ligne pour placer la prochaine url en dessous
//remarque: le saut de ligne fonctionne seulement avec les double guillemets et ne fonctionnera pas avec des simple, ex : '\n'
$liens_de_la_page .= "$lien\n";

}

//en fin on colle les liens dans un fichier texte avec le même nom que la page qui vient d'être scannée
file_put_contents($fichier_de_destination, $liens_de_la_page);
echo "OK, fichier <a href='$fichier_de_destination'>$fichier_de_destination</a> créé<br/>";



Besoin de travaux pour votre site ?

Je suis disponible, contactez-moi !

Commentaires

Ajouter un commentaire

Commenter
Pseudo/Nom
Email
Message
Captcha

Captcha temporairement HS, tapez 2 svp
memo1memo2
Commenter
Pas encore de commentaire, soyez le premier !

Retour à la liste des scripts