par

Comment faire pour aspirer tout le code HTML d'un site Web en PHP ?

1 Réponse

+1 validé
par

Il existe plusieurs manières de récupérer le contenu d'une page web (tout le code HTML) et ainsi de le stocker par exemple dans une variable pour ensuite en extraire la portion qui nous intéresse.

Pour effectuer un scrap d'une page web, c'est à dire aspirer de manière automatique son contenu et son code HTML, vous pouvez utiliser CURL de la manière suivante :

$url = "http://www.google.fr";
$options = array(
//CURLOPT_PROXY => "127.0.0.1:8080",
//CURLOPT_PROXYUSERPWD => "user:password",
//CURLOPT_PROXYTYPE => CURLPROXY_SOCKS5,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER         => true,
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_ENCODING       => "",
CURLOPT_USERAGENT      => "spider",
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_AUTOREFERER    => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT        => 120,
CURLOPT_MAXREDIRS      => 10,
);
$ch = curl_init($url);
curl_setopt_array($ch, $options);
$scrap = curl_exec($ch);
curl_close($ch);
echo $scrap;

On peut également utiliser une fonction PHP native : file_get_contents()

Remarque : Cette fonction quand elle est utilisée tel quel, n'intègre pas les entêtes HTTP, il est donc préférable de créer un contexte de flux pour y intégrer l'entête adéquate. Pour ce faire on utilise la fonction stream_context_create()

Voici comment procéder pour aspirer un site avec PHP :

$options = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);
$context = stream_context_create($options);
$file = file_get_contents('http://www.google.fr/', false, $context);
echo $file;

Les deux solutions fonctionnent, cependant CURL offre d'avantage d'options.

Offre Sponsorisée

Ailleurs sur le Web

Lecture Recommandée

Edward Snowden - Mémoires vives

"Je m'appelle Edward Joseph Snowden. Avant, je travaillais pour le gouvernement mais aujourd'hui je suis au service de tous. Il m'a fallu près de trente ans pour saisir la différence et quand j'ai compris, ça m'a valu quelques ennuis au bureau."

L'homme qui a tout risqué pour dénoncer la surveillance globale, ou l'extraordinaire histoire d'un garçon brillant qui a grandi "en ligne", d'un homme devenu espion, puis lanceur d'alerte, et, en exil, la consciencce de l'internet.

Mémoires vives est un témoignage exceptionnel, également disponible en numérique.

Sujets Connexes

Questions liées

1 réponse
1 réponse
posée par anonyme 12-Janvier-2020
1 réponse
posée par anonyme 26-Juillet-2019
1 réponse
posée par anonyme 05-Septembre-2018
1 réponse
1 réponse
2 réponses

Merci pour votre visite sur 1FORMATIK.com

Un petit clic sur la pub est toujours apprécié, c'est elle qui finance le site

Bon surf

...