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 :

class generé aleatoirement


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2022
    Messages : 7
    Par défaut class generé aleatoirement
    bonjour a tous
    je suis tout neuf en python
    j'ai cherché un peu partout mais je ne dois pas poser la bonne question

    j’apprends a scraper mais avec les classe generé d'une page a l'autre cela ne fonctionne plus

    comment puis-je rechercher une classe qui ne contient pas tout a fait les meme caractere
    par exempe

    class = "azerty123qwerty"
    class = "azerty456qwerty"
    class = "azerty789qwerty"

    je voudrai trouver 'azerty' dans un pemier temps
    find_all (class : "azerty")
    pour extraire le contenu
    avec du
    class[0]
    class[1]
    class[2]

    je sais pas si c'est clair

    merci d'avance

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    bonjour

    Attention , dans ton code python "class" est un mot réservé en python

    Pour ta question, en fait elle correspond sans doute plus à une question css (donc autre forum).
    Voir les sélecteurs css :
    https://developer.mozilla.org/fr/doc.../CSS_selectors
    https://developer.mozilla.org/fr/doc...bute_selectors

    peut se traduire en code python/bs4 par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    html = """
        <div class="toto123">ok</div> <b class="tataettoto123">NO</b>
        <div class="toto457">NO pour le 7</div> <i class="toto123">ok</i>
        <div class="tota123">NO</div>
        <p><div class="toto723 tata">ok</div></p>
    """
     
    soup = BeautifulSoup(html, "html.parser")
     
    for tag in soup.select("*[class^=toto]"):
        if str(tag["class"][0]).endswith("7"):  # eventuellement on peut ajouter un filtre écrit en python
            continue
        print(tag, tag["class"], tag.attrs["class"], tag.get_text())
    Sinon, pour très complexe, il est possible d'utiliser les regex python avec bs (c'est dans la doc de ta fonction).
    Comme tu peux le voir avec mon filtre bidon (termine pas par 7), on n'est même pas obligé d'utiliser un filtrage inclus dans bs.

    ---------

    Lorsque l'on a des doutes, on se fait un mini script comme celui-ci pour faire ces 36 mini tests.
    Si j'ai tous les "ok" et uniquement eux, c'est que j'ai trouvé le bon filtre
    $moi= (:nono: !== :oops:) ? :king: : :triste: ;

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2022
    Messages : 7
    Par défaut
    super j'arrive a sortir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <span class = "toto123tata"INFO1</span>
    <span class = "toto456tata"INFO2</span>
    <span class = "toto789tata"INFO3</span>
    maintenant comment je fait pour reccuperer mes infos?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    info1 = span[0] --> 'INFO1'
    info2 = span[1] --> 'INFO2'
    info3 = span[2] --> 'INFO3'

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    bien sûr si c'est span que tu désires uniquement mon code *[class^=toto] est en fait span[class^=toto].

    "recuperer mes infos ?" ??? je ne comprends pas la question puisque tu dis(montre) l'avoir fait dans mon code exemple , je ne récupère pas les infos ? (le contenu texte de la balise html)
    $moi= (:nono: !== :oops:) ? :king: : :triste: ;

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2022
    Messages : 7
    Par défaut
    oui il me donne les 3 que je veux en texte brut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <span class="ACrL2ZACrpbG1zL2dlbnJlLTEzMDI1Lw== dark-grey-link">Action</span> ['ACrL2ZACrpbG1zL2dlbnJlLTEzMDI1Lw==', 'dark-grey-link'] Action
    <span class="ACrL2ZACrpbG1zL2dlbnJlLTEzMDAxLw== dark-grey-link">Aventure</span> ['ACrL2ZACrpbG1zL2dlbnJlLTEzMDAxLw==', 'dark-grey-link'] Aventure
    <span class="ACrL2ZACrpbG1zL2dlbnJlLTEzMDIxLw== dark-grey-link">Science Fiction</span> ['ACrL2ZACrpbG1zL2dlbnJlLTEzMDIxLw==', 'dark-grey-link'] Science Fiction
    et je voudrai recuperrer que Action, Aventure et science fiction

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    comme dit plus haut, ta question n'a pas de sens, sinon que tu n'as même pas lu / testé mon code exemple

    Tu cherches a récupérer le contenu texte dans tes balises html
    $moi= (:nono: !== :oops:) ? :king: : :triste: ;

  7. #7
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    Citation Envoyé par anistos Voir le message
    j’apprends a scraper
    Attention, cela simple hors de propos si tu n'as pas les bases. Tu sembles à peine (pour être gentil) comprendre les listes et les boucles, avant de faire ton projet, il y a un minimum à connaitre sur python. Et existe des tutos sur ce site

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    un moyen de l'afficher en ligne plutot q'en colone?
    Oui, c'est très simple mais si tu ne maitrises pas les bases ...
    Et puisque je n'ai aucune idée de la structure de ton code (je ne suis pas dans ton dos), je ne risque pas de te donner une piste.

    EDIT
    j'ai vu print
    c'est une solution (sans doute pas la meilleure). note: "voir" une foncttion sans lire la doc === aucune utilité
    $moi= (:nono: !== :oops:) ? :king: : :triste: ;

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

Discussions similaires

  1. Instancier une classe aléatoirement
    Par delta07 dans le forum Général Java
    Réponses: 8
    Dernier message: 19/02/2015, 15h45
  2. [Débutant] Comment affecter aléatoirement les pixels aux classes ?
    Par Imène_23 dans le forum Images
    Réponses: 9
    Dernier message: 30/05/2011, 09h05
  3. appliquer une class aléatoirement
    Par gtraxx dans le forum jQuery
    Réponses: 2
    Dernier message: 15/06/2009, 22h25
  4. Réponses: 2
    Dernier message: 15/02/2009, 18h06
  5. recuperer une Classe objet aléatoirement
    Par 123quatre dans le forum ActionScript 3
    Réponses: 7
    Dernier message: 26/01/2009, 23h02

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