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

Python Discussion :

Appeler la clef d'un dictionnaire dans une définition (beautifulsoup)


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut Appeler la clef d'un dictionnaire dans une définition (beautifulsoup)
    Bonjour,

    Je bloque dans ce code au niveau del x[???] (je pourrais me passer de la fonction mais je suis curieuse de connaitre la solution à ce problème, c'est devenu maladif: j'ai passé quelques heures à plancher dessus !).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    from bs4 import BeautifulSoup
    data='<p class="story">ABC</p> <p id="3">DEF</p> <p class="story">JHJ</p>'
     
    def enleveAttrib(data, **kwarg):
        soup = BeautifulSoup(data, "html.parser")
        for x in soup.findAll(tag, kwargs):
            del x[???] # je cherche un équivalent de: del x["class"]
     
    kwargs= {"class":"story"}
    enleveAttrib(data,"p",**kwargs )
    print(soup)
    Le résultat devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p>xxx </p> <p id="2">yyy</p> <p> zzz</p>
    Merci beaucoup pour votre aide !

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    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 762
    Par défaut
    Salut,

    del x['class'] should do the trick devrait le faire.

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

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut Voilà la réponse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def enleveAttrib(data, tag, kwargs):
    	soup = BeautifulSoup(data, "html.parser")
    	for x in soup.findAll(tag, kwargs):
    		for key in kwargs:
    			print(key)
    			x.attrs.pop(key, None) # attrs ets utilisé pour accéder au dico / del x[key] marche ici mais donnera une erreur s'il n'y a pas de clef dans le dico	
     
    data=enleveAttrib(data,"p",{"class":"story"})

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

Discussions similaires

  1. [XSLT 2.0] appel conditionnel de feuilles de style dans une feuille XSL
    Par qouify dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 23/02/2011, 16h52
  2. Appel d'un procedure d'événement dans une autre forme
    Par mounim_taoufik dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/12/2009, 09h22
  3. appel classe Main d'un projet dans une classe
    Par yannard dans le forum Langage
    Réponses: 3
    Dernier message: 27/02/2008, 11h27
  4. Réponses: 1
    Dernier message: 01/09/2006, 20h13

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