Steve TENZA
Intervient pour votre site internet
Facebook Me contacter Cookie
Télécharger
Noter:
4.5/5 (2)
Ajouté/Modifié le 2023-10-28
Visionné 12904 fois

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

Description

Pour extraire ou "scraper" les liens d'une page web à l'aide de PHP, le code récupère les URL et les enregistre dans un fichier .txt.

Ce script utilise cURL pour accéder à la page web, récupère son contenu, extrait tous les liens grâce à une expression régulière, puis les enregistre dans un fichier texte pour une utilisation ultérieure. Il est essentiel de noter que le scraping de sites web doit être effectué avec respect et conformément aux lois et aux politiques de respect de la vie privée.

Deux versions pour parcourir, extraire ou "sniffer" le contenu d'une page web :

Voici comment cela fonctionne :

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

// Nom du fichier dans lequel nous stockerons les liens extraits
$fichier_de_destination = "liens-url.txt";

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


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

// Initialisation de cURL pour lire la page à scraper
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

// Pour retourner le contenu, on utilise CURLOPT_RETURNTRANSFER : 1
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Gestion des URL en HTTPS
if(substr($url, 0, 5)=='https')
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

// Simulation d'un USER_AGENT factice pour éviter le blocage par certains sites (403 Forbidden)
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201');

// Vérification des erreurs et récupération du résultat
if(!$contenu_de_la_page = curl_exec($ch))
exit("Erreur cURL : " . curl_error($ch));

// Extraction de tous les liens de la page en utilisant une expression régulière
preg_match_all("#(https?://[\w./?&%:;=-]+)#is", $contenu_de_la_page, $out);

// Stockage des liens extraits dans une variable
$liens_de_la_page = '';

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

// Ajout du lien avec 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";

}

// Enregistrement des liens dans un fichier texte avec le même nom que la page 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/>";


// Fermeture de 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/>";
Télécharger le script
(Téléchargé 134 fois)


J'espère que ce script gratuit vous est utile.
Pour soutenir mon travail, un simple don ou mettre une note est grandement apprécié.
Votre réussite en ligne commence ici

Vous cherchez à pousser encore plus loin vos idées ou à les concrétiser avec un site internet sur mesure ? Je suis là pour vous aider ! Mon expérience en développement web est à votre disposition.

Que ce soit la création de votre site web pro ou l'apport de fonctionnalités avancées à votre projet, contactez-moi pour en discuter et avoir un devis gratuit personnalisé.

Mon objectif est de vous offrir des solutions sur mesure qui répondent à vos besoins, et votre vision associée à mon expertise donnera vie à votre projet web parfait. Contactez-moi aujourd'hui, je réponds en général en moins d'une heure :

Demander un devis
Réponse rapide !

Vous recherchez un script précis ?

Dites-moi ce dont vous avez besoin, je peux développer le script demandé et vous envoyer un mail dès qu'il est dispo !

🔔 Vous pouvez laisser votre mail pour recevoir les nouveaux scripts. Pas de pub, pas de tracas. Vous êtes libre de le supprimer à tout moment.

Je prends en compte toutes les demandes. Les idées les plus populaires passent en priorité et seront publiées dès qu'elles seront prêtes. 2877 demandes reçues.

Si vous avez un projet en tête, je vous suggère de me contacter directement pour en discuter.

Commentaires

Ajouter un commentaire

Commenter
Pseudo/Nom
Email
Message
Captcha
memo2
Commenter
Ajoutez un commentaire, soyez le premier !

Retour à la liste des scripts

Un site à créer ?
Contactez-moi