Bonjour !
J'ai ce code que j'ai modifié pour crawler du contenu.
Jusque là tout vas bien !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<?php
//licence CC BY-NC http://buzut.fr
 
//site web à crawler
$url = 'http://127.0.0.1:8887/URL/';
 
//déclaration de la fonction de crawl
function crawl($url)
{
 
        //initialisation de curl
        $ch = curl_init($url);
 
        //création d'un fichier texte pour stocker le contenu crawlé
        //effacement du fichier précédent si existe
        if(file_exists('fichier_html_brut'))
        {
        	unlink('fichier_html_brut');
        }
        $fp_fichier_html_brut = fopen('fichier_html_brut', 'a');
 
        //définition des paramètres curl
        //1 redirection de l'output dans le fichier txt
        curl_setopt($ch, CURLOPT_FILE, $fp_fichier_html_brut);
 
        //2 on spécifie d'ignorer les headers HTTP
        curl_setopt($ch, CURLOPT_HEADER, 0);
 
        //exécution de curl
        curl_exec($ch);
 
        //fermeture de la session curl
        curl_close($ch);
 
        //fermeture du fichier texte
        fclose($fp_fichier_html_brut);
 
        //passage du contenu du fichier à une variable pour analyse
        $html_brut = file_get_contents('fichier_html_brut');
 
        //extraction des emails
        preg_match_all('%<div class="illus">(.*)</div>%Us', $html_brut, $adresses_mail);
 
        //creation d'un fichier pour recevoir les mails
        $fp_fichier_emails = fopen('fichier_mails', 'a');
 
        //on creer une boucle pour placer tous les mails de la page dans le fichier
        foreach ($adresses_mail[0] as $element)
        {
 
		//on ajoute un retour chariot en fin de ligne pour avoir 1 mail/ligne
		$element .= "\n";
        	fputs($fp_fichier_emails, $element);
        }
 
        fclose($fp_fichier_emails);
 
        //extraction des liens
        preg_match_all('#"/?[a-zA-Z0-9_./-]+\.(php|html|htm)"#', $html_brut, $liens_extraits);
 
        //si le fichier contenant les liens existe déjà
        if (file_exists('liens_a_suivre'))
        {		
        	//on l'ouvre
                $fp_fichier_liens = fopen('liens_a_suivre', 'a');
 
		//on créé une boucle pour enregistrer tous les liens ds le fichier
                foreach ($liens_extraits[0] as $element)
                {		
                	//on recharge le contenu dans la variable à chaque tour de boucle
                	//pour être à jour si le lien est present +sieurs x sur la même page
                	$gestion_doublons = file_get_contents('liens_a_suivre');
 
                	//on enlève les "" qui entourent les liens
                        $element = preg_replace('#"#', '', $element);
                        $follow_url = $element;
                        $follow_url .= "\n";
 
                        //creation d'un pattern pour la verification ds doublons
                        $pattern = '#'.$follow_url.'#';
 
			//on verifie grace au pattern précédemment créé
			//que le lien qu'on vient de capturer n'est pas déjà ds le fichier
                        if (!preg_match($pattern, $gestion_doublons))
                        {
                                fputs($fp_fichier_liens, $follow_url);
                        }
                }
        }
 
        //si le fichier contenant les liens n'existe pas 
        else
        {
 
		//on le créé
                $fp_fichier_liens = fopen('liens_a_suivre', 'a');
 
		//puis on fait une boucle pour enregistrer tous les liens ds 1 fichier
                foreach ($liens_extraits[0] as $element)
                {
                        $element = preg_replace('#"#', '', $element);
                        $follow_url = $element;
                        $follow_url .= "\n";
                        fputs($fp_fichier_liens, $follow_url);
                }
        }
 
	//fermeture fu fichier contenant les liens
        fclose($fp_fichier_liens);
 
}
 
//on appelle une première fois la fonction avec l'url racine
crawl($url);
 
 
//ensuite on ouvre le fichier de liens pour visiter les autres pages du site
$lire_autres_pages = fopen('liens_a_suivre', 'r');
 
//on créé une boucle pour visiter chacun des liens
//on stop cette boucle quand le curseur arrive à la fin du fichier
$numero_de_ligne = 1;
 
while(!feof($lire_autres_pages))
{
    //curl ne comprend que les liens absolus
    //on formate donc nos liens relatifs en liens absolus
    $page_suivante = $url;
    $page_suivante .= fgets($lire_autres_pages);
    echo $numero_de_ligne . ' Analyse en cours, page : ' .  $page_suivante;
    $numero_de_ligne++;
 
    //on se contente de rappeler la fonction crawl avec nos nouveaux liens
    crawl($page_suivante);
}
 
fclose ($lire_autres_pages);
 
 
?>
Maintenant, ce que je veux récuperer en + et inclure en + dans mon fichier de reception, c'est la balise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<td headers="header3" class="">(.*)</td>'
j'ai essayé en faisant ça, mais sans résultats :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
//extraction des emails
preg_match_all('%<img height="100" width="100" alt="(.*)" src="../../../imgs/produits/(.*).jpg" />%Us',
'<td headers="header3" class="">(.*)</td>',
$html_brut, $adresses_mail);