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

Exercices Python Discussion :

Supprimer balises html


Sujet :

Exercices Python

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2020
    Messages : 38
    Points : 35
    Points
    35
    Par défaut Supprimer balises html
    Fonction extraire liens html
    Bonjour à tous,
    J'ai un exercice à faire :

    1. Ecrire une fonction extraire_liens(page) retournant la liste des liens HTTP présents dans le contenu de la page. Pour rappel, la structure d'une balise contenant un lien est: <a href= http...." ...>
    J'ai fait ceci :

    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
    def extraire_liens(page):
     
        from bs4 import BeautifulSoup
     
        from urllib.request import urlopen
     
        from urllib import parse
     
     
        url = "https://www.iedparis8.net/"
     
     
        page = BeautifulSoup(urlopen(url), 'html.parser')
     
     
        for liens in page.find_all('a'):
     
            print(liens.get('href'))

    Comment faire pour que ma fonction soit plus sélective, je voudrais des URL Absolues.


    2. On souhaite nettoyer la page des différentes balises HTML qui s'y trouvent (une balise commence par le caractère '<' et termine par '>'). Vous devez réaliser une fonction nettoie_page(page) dont le rôle est de supprimer les balises HTML du contenu.
    J'ai fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import re
     
    def nettoie_page(page):
        page = re.compile(r'<.*?>')
     
        return page('' ", page)
    Merci beaucoup pour votre aide.
    F.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par Fatouchka Voir le message
    Comment faire pour que ma fonction soit plus sélective, je voudrais des URL Absolues.
    Une page HTML est un document structuré de type texte.

    Plutôt que de laisser à BeautifoulSoup s'en dépatouiller, vous pourriez sauvegarder le texte dans un fichier et l'inspecter avec un éditeur (de texte) pour voir ce qu'il y a dedans.

    Si la chaîne de caractères associée à l'attribut "href" est une URL relative (ou autre chose). Il faut vous mettre à la place d'un navigateur Web: comment va-t-il compléter cette adresse relative pour charger le document correspondant.

    Comprendre comment sont structurés les documents HTML et ce que peut faire un navigateur Web des informations qu'ils contiennent, n'a rien à voir avec la programmation Python.
    Par contre, ignorant cela, vous allez attendre de Python ou de BeautifoulSoup ce qu'ils ne pourront pas vous donner.

    Citation Envoyé par Fatouchka Voir le message
    2. On souhaite nettoyer la page des différentes balises HTML qui s'y trouvent (une balise commence par le caractère)
    C'est un excellent exercice pour apprendre à utiliser les expressions régulières. Mais c'est à vous de le faire. Si vous ne vous en sortez pas, vous pouvez chercher un peu sur Internet pour comprendre les solutions qu'on vous propose (et essayer de les faire marcher). Si vous ne vous en sortez pas poser des questions spécifiques.

    Quand on utilise BeautifoulSoup, page.text fait le boulot.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [RegEx] Supprimer les balises HTML
    Par Anduriel dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2008, 16h51
  2. [RegEx] supprimer certaines balises HTML
    Par shinji_rem dans le forum Langage
    Réponses: 2
    Dernier message: 15/03/2007, 17h20
  3. [MySQL] supprimer balises html
    Par nicerico dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/09/2006, 22h49
  4. [RegEx] Supprimer les balises HTML
    Par hisy dans le forum Langage
    Réponses: 4
    Dernier message: 19/03/2006, 17h10
  5. supprimer balises html/css
    Par fr8ncky dans le forum Langage
    Réponses: 6
    Dernier message: 30/11/2005, 14h12

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