La boucle
C'est sans doute pour des raisons de sécurité que les informations de contact ne sont pas visibles immédiatement dans une liste, mais uniquement après clic sur les liens de cette liste... Arf !
Bon : le robot devra simplement feuilleter une-à-une chaque page du site internet. Heureusement nous connaissons déjà la forme des URLs qui nous intéressent : de toute évidence le chiffre de fin est l'identifiant utilisé par la base de données du site.
http://site-indiscret.com/contacts/[IDENTIFIANT]
Nous allons donc faire une boucle sur les identifiants de pages afin de les tester une par une.
Nous incrémentons donc (++
) une concaténation ($content_
), en commençant ci-dessous par la page http://site-indiscret.com/contacts/1 jusqu'à 10000.
... $nb_lignes = 0 ; while($nb_lignes<=10000){ // Préfixe de l'URL $content = 'http://site-indiscret.com/contacts/' ; // URL incrémentée $content_ = str_get_html($content.$nb_lignes++) ; // Appel de la page $html = @file_get_html($content_) ; ...
Nous ajoutons un contexte permettant la gestion des éventuelles erreurs (les pages inexistantes). Afin de passer outre certaines errerus et poursuivre les imports.
Ce qui donnera cela :
... $nb_lignes = 0 ; while($nb_lignes<=10000){ // Préfixe de l'URL $content = 'http://site-indiscret.com/contacts/' ; // URL incrémentée $content_ = str_get_html($content.$nb_lignes++) ; // Création d'un contexte avant l'appel de la page afin de pouvoir ignorer les erreurs d'import $context = stream_context_create(array( 'http' => array('ignore_errors' => true), )); // Appel de la page $html = @file_get_html($content_, false, $context) ; ...