Récupérer les emails d'une page web

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par CreaZo, 22 Août 2014.

  1. CreaZo
    CreaZo Nouveau WRInaute
    Inscrit:
    22 Août 2014
    Messages:
    7
    J'aime reçus:
    0
    bonjour à tous,

    Je souhaite récupérer les emails d'une page html, d'après mes recherches je peux utiliser ceci :
    Code:
    <?php
    # Adresse du site à "exploiter"
    $url = 'http://monsite.fr';	
    
    # Récupération des emails
    preg_match_all('`[a-zA-Z0-9_\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+`m', $file, $emails);
    # Affichage du tableau
    print_r($emails[0]);
    
    Sauf que quand j'utilise ceci j'ai comme affichage : Array()

    a priori les résultat sont dans un tableau, pour voir le contenu de ce tableau il faut que j'utilise la fonction var_dump ou print_r (comme dans mon exemple) puis mettre en place une boucle pour passer les éléments un à un.

    Sauf que je n'y arrive pas... Quelqu'un me m'aider ou m'indiquer la voie à suivre ?
    Merci !
     
  2. baud74
    baud74 WRInaute impliqué
    Inscrit:
    21 Juillet 2014
    Messages:
    586
    J'aime reçus:
    0
    dans ton code $file n'est pas définie, donc cela n'a aucune chance de fonctionner.
     
  3. CreaZo
    CreaZo Nouveau WRInaute
    Inscrit:
    22 Août 2014
    Messages:
    7
    J'aime reçus:
    0
    Du coup je dois le modifier mais comment ?

    J'ai essayer ceci sans succés :

    Code:
    <?php
    # Adresse du site à "exploiter"
    $url = 'http://monsite.fr';   
    
    # Récupération des emails
    preg_match_all('`[a-zA-Z0-9_\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+`m', $url, $emails);
    # Affichage du tableau
    print_r($emails[0]);
    
    Merci pour ton soutien ^^
     
  4. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 413
    J'aime reçus:
    0
    et si tu demandais directement les adresses mail au site d'où tu veux les récupérer ?
     
  5. mitchum
    mitchum WRInaute discret
    Inscrit:
    18 Février 2004
    Messages:
    249
    J'aime reçus:
    0
    avec ton code ca marchera pas...
    Par contre ca ca va marcher :
    Code:
    <?php
    # Adresse du site à "exploiter"
    $url = 'tonemail@jeveuxspammer.fr';   
    
    # Récupération des emails
    preg_match_all('`[a-zA-Z0-9_\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+`m', $url, $emails);
    # Affichage du tableau
    print_r($emails[0]);


    (j'ai pas testé la regex...)

    Par contre si tu veux vraiment recuperer du contenu d'une page web, ca sert a rien de mettre une url dans une variable sans rien faire derriere, la logique des choses voudrait que meme sans code on fasse :

    - on choisit l'url a crawler
    - on recupere le code html de cette url
    - on parse le document pour trouver ce qu'on veux
    - on stocke les resultats dans un tableau, fichier texte, bdd...

    la ton code fait :
    - on choisit l'url a crawler
    - on parse le document pour trouver ce qu'on veux
    - on stocke les resultats dans un tableau

    il manque une étape...
     
  6. CreaZo
    CreaZo Nouveau WRInaute
    Inscrit:
    22 Août 2014
    Messages:
    7
    J'aime reçus:
    0
    Merci pour votre aide.

    Juste pour mettre au clair, c'est n'est pas pour du spam. Je gère une cinquantaine de mailing-list OVH au boulot je je dois les mettre régulièrement à jour en fonction de l’alimentation d'une base de données qu’alimentent mes collègues, bref une petite usine à gaz. En pratique récupère les mails de la BDD à la main via captain extractor, mais je préférais le faire en interne via un script maison d'où ma demande.

    Bref voila ma problématique ^^

    Pour revenir à mon code en mettant ceci

    Code:
    <?php
    # Adresse du site à "exploiter"
    $url = 'http://alveus.informationjeunesse.fr/Extern/WebContent/12953';   
    
    # Récupération des emails
    preg_match_all('`[a-zA-Z0-9_\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+`m', $url, $emails);
    # Affichage du tableau
    print_r($emails[0]);
    J'ai de nouveau un tableau vide : Array ( )
    Pourtant il y a bien des mails dans mon fichier html... Si j'ai bien compris je ne fais que stocker et pas d’impression écran ?

    L'idéal serait d'avoir un fichier texte à la fin afin que je puisse le basculer à OVH par la suite !
     
  7. mitchum
    mitchum WRInaute discret
    Inscrit:
    18 Février 2004
    Messages:
    249
    J'aime reçus:
    0
    Code:
    <?php
    # Adresse du site à "exploiter"
    $url = 'http://alveus.informationjeunesse.fr/Extern/WebContent/12953';   
    
    $ch = curl_init();
    $timeout = 10;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    
    
    
    # Récupération des emails
    preg_match_all('`[a-zA-Z0-9_\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+`m', $data, $emails);
    # Affichage du tableau
    print_r($emails[0]);
    ca devrait être mieux je pense.

    Sinon si tu as la bdd, pourquoi de pas faire un "select email from...." ??
     
  8. CreaZo
    CreaZo Nouveau WRInaute
    Inscrit:
    22 Août 2014
    Messages:
    7
    J'aime reçus:
    0
    Merci cela fonctionne j'ai les mails, un peu de mise en page à faire et je serais bon (retirer les numéros de lignes par exemple)

    J'aurais préférer récupérer les mails en direct mais ce n'est pas possible et encore ceci est une fiche relativement courte (Lozère), dans l’Aude je vais avoir un truc multiplier par beaucoup plus ^^

    Merci encore à tous ! :) :)
     
  9. mitchum
    mitchum WRInaute discret
    Inscrit:
    18 Février 2004
    Messages:
    249
    J'aime reçus:
    0
    il te suffit de boucler sur ton tableau et ensuite d'ecrire dans un txt ou autre....
     
  10. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 885
    J'aime reçus:
    74
  11. CreaZo
    CreaZo Nouveau WRInaute
    Inscrit:
    22 Août 2014
    Messages:
    7
    J'aime reçus:
    0
    Merci, mais dans l'idée je veux échapper à ce genre d'extracteur automatisé ^^

    Sinon mon code final représente ceci :

    Code:
    <html>
    <head>
    <title>Mail PIJ LOZERE</title>
    </head><body>
    <pre>
    <?php
    # Adresse du site à "exploiter"
    $url = 'http://alveus.informationjeunesse.fr/Extern/WebContent/12953';   
    
    $ch = curl_init();
    $timeout = 10;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    
    
    
    # Récupération des emails
    preg_match_all('`[a-zA-Z0-9_\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+`m', $data, $emails);
    # Affichage du tableau
    print_r($emails[0]);
    
    
    $JourSemaine = array("Monday" => "Lundi", "Tuesday" => "Mardi", "Wednesday" => "Mercredi", "Thursday" => "Jeudi", "Friday" => "Vendredi", "Saturday" => "Samedi", "Sunday" => "Dimanche") ;
    echo implode(", ", $JourSemaine) ;
    ?>
    </pre>
    </body>
    </html>
    Cela me renvoie un tableau type :

    Array
    (
    [0] => ino@crij-montpellier.com
    ...
    [16] => casejols@wanadoo.fr
    )

    J'aimerais passer par la fonction suivante echo implode("<br> ", $emails) ; mais je n'ai plus rien avec celle-ci (le but étant d'avoir juste une liste avec retour à la ligne des mails)
     
  12. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 413
    J'aime reçus:
    0
    euh, une requête directe à la bdd serait quand même plus efficace, plus rapide et, surtout, moins source d'erreurs
     
  13. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 885
    J'aime reçus:
    74
    implode("<br> ", $emails[0])
     
  14. CreaZo
    CreaZo Nouveau WRInaute
    Inscrit:
    22 Août 2014
    Messages:
    7
    J'aime reçus:
    0
    Bizarrement cela ne marche pas ...

    Pourtant que je passe ceci :
    Code:
    $JourSemaine = array("Monday" => "Lundi", "Tuesday" => "Mardi", "Wednesday" => "Mercredi", "Thursday" => "Jeudi", "Friday" => "Vendredi", "Saturday" => "Samedi", "Sunday" => "Dimanche") ;
    echo implode("<br>", $JourSemaine) ;
    Cela fonctionne

    Mon code intégrale :
    Code:
    <html>
    <head>
    <title>Mail PIJ LOZERE</title>
    </head><body>
    <pre>
    <?php
    # Adresse du site à "exploiter"
    $url = 'http://alveus.informationjeunesse.fr/Extern/WebContent/12953';   
    
    $ch = curl_init();
    $timeout = 10;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    
    
    
    # Récupération des emails
    preg_match_all('`[a-zA-Z0-9_\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+`m', $data, $emails);
    # Affichage du tableau
    implode("<br> ", $emails[0]);
    
    
    $JourSemaine = array("Monday" => "Lundi", "Tuesday" => "Mardi", "Wednesday" => "Mercredi", "Thursday" => "Jeudi", "Friday" => "Vendredi", "Saturday" => "Samedi", "Sunday" => "Dimanche") ;
    echo implode("<br>", $JourSemaine) ;
    ?>
    </pre>
    </body>
    </html>
     
  15. mitchum
    mitchum WRInaute discret
    Inscrit:
    18 Février 2004
    Messages:
    249
    J'aime reçus:
    0
    et avec un echo devant ton implode ca irait pas mieux ????
     
  16. CreaZo
    CreaZo Nouveau WRInaute
    Inscrit:
    22 Août 2014
    Messages:
    7
    J'aime reçus:
    0
    Bon ben oui ... je suis un abruti... mauvaise relecture !

    Problème résolu, merci à vous tous ! Je me retrouve bien avec ma liste de mails avec un retour à la ligne.

    Bonne continuation à vous tous !
     
Chargement...
Similar Threads - Récupérer emails web Forum Date
Search Console Sitemaps non indéxés ""Impossible de recuperer le sitemap" Crawl et indexation Google, sitemaps 23 Juillet 2020
Récupérer backlinks vers liens morts : fausse bonne idée ? Netlinking, backlinks, liens et redirections 6 Avril 2020
Récupérer le contenu d'une vidéo youtube Le café de WebRankInfo 23 Mars 2020
Comment récupérer un compte insta ouvert par un cybersquatteur ? Autres réseaux sociaux 29 Janvier 2020
comment récupérer mon positionnement Problèmes de référencement spécifiques à vos sites 5 Janvier 2020
Attendre des années avant de récupérer l'argent amassé sur adsense AdSense 23 Novembre 2019
Comment récupérer variable dynamique pour GTM ? Google Analytics 30 Septembre 2019
SELECT COUNT avec PDO et récupérer le résultat Développement d'un site Web ou d'une appli mobile 27 Mai 2019
récupérer id en php sans lien Développement d'un site Web ou d'une appli mobile 25 Avril 2019
Récupérer events via API google analytics Google Analytics 6 Avril 2019