IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

PHP pour l'aspiration des sites web


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Points : 0
    Points
    0
    Par défaut PHP pour l'aspiration des sites web
    Bonjour,

    je veux faire un programme en PHP qui permet d'extraire du texte brut à partir des articles mis en ligne.

    et merci d'avance.

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    D'accord.

    Et après ?

  3. #3
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Facile !
    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
     
    function html2txt($html){
        $search = array('@<script[^>]*?>.*?</script>@si',
               '@<style[^>]*?>.*?</style>@siU',
               '@<[\/\!]*?[^<>]*?>@si',
               '@<![\s\S]*?--[ \t\n\r]*>@'
        );
        $clean = preg_replace($search, '', $html);
        return $clean;
    }
     
    $articles = array(
        'http://google.fr'
    );
     
    foreach($articles as $article){
        $html = file_get_contents($article);
        $text = html2txt($html);
     
        printf('<div>%s</div>', $text);
    }

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par ThomasR Voir le message
    Facile !
    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
     
    function html2txt($html){
        $search = array('@<script[^>]*?>.*?</script>@si',
               '@<style[^>]*?>.*?</style>@siU',
               '@<[\/\!]*?[^<>]*?>@si',
               '@<![\s\S]*?--[ \t\n\r]*>@'
        );
        $clean = preg_replace($search, '', $html);
        return $clean;
    }
     
    $articles = array(
        'http://google.fr'
    );
     
    foreach($articles as $article){
        $html = file_get_contents($article);
        $text = html2txt($html);
     
        printf('<div>%s</div>', $text);
    }
    encore plus facile : strip_tags

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Points : 0
    Points
    0
    Par défaut
    J'ai trouvé cette solution avec curl

    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
    function recuperer_page_http($url, $timeout = 10, $nom_local = '', $post = NULL) {
        if (extension_loaded('curl')) {
     
            $ch = curl_init($url);
     
    		// configuration des options
     
    curl_setopt($ch, CURLOPT_HEADER, 0);
     
    curl_setopt($ch, CURLOPT_PROXY, "insérer le proxy");  -- optionnel
            curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
     
    /*On indique à curl de suivre les redirections par le header http location*/
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
            if ($nom_local) {
                $fp = fopen($nom_local, 'w') or die("Le fichier '$nom_local' n'a pu être ouvert en écriture");
                curl_setopt($ch, CURLOPT_FILE, $fp);
            } else {
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
            }
            if ($post) {
                curl_setopt($ch, CURLOPT_POST, TRUE);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
            }
            $ret = curl_exec($ch);
            if ($nom_local) {
                fclose($fp);
            }
     
            if ($ret === FALSE) {
                die("Une erreur a été rencontrée : " . curl_error($ch));
            }
    		  curl_close($ch);
            return $ret;
     
        } else {
            die("Erreur lors de l'utilisation de la biblio CURL");
        }
    }


  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    bien joué t'as recrée la fonction copy ...

  7. #7
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    encore plus facile : strip_tags
    strip_tags a des comportements bizzares desfois (lorsque le HTML est invalide par exemple) : http://fr.php.net/manual/fr/function...ags.php#100995
    Je préfère une solution simple qui supprime les tags et laisse le texte.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.4] Introduction au développement PHP pour réaliser des sites Web dynamiques
    Par The_Pretender dans le forum Langage
    Réponses: 0
    Dernier message: 07/07/2014, 07h53
  2. GWT ou php pour la création du site web
    Par daddouch dans le forum Autres langages pour le Web
    Réponses: 0
    Dernier message: 12/04/2011, 12h20
  3. Réponses: 1
    Dernier message: 16/11/2009, 16h09
  4. Outils pour publier des sites web
    Par grabriel dans le forum Autres
    Réponses: 5
    Dernier message: 14/05/2008, 15h06
  5. Réponses: 3
    Dernier message: 12/06/2007, 13h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo