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

Réseau/Web Python Discussion :

Boucle pour recherche à partir d'une liste urls dans un excel [Python 3.X]


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2021
    Messages : 6
    Par défaut Boucle pour recherche à partir d'une liste urls dans un excel
    Bonjour à tous !
    Je suis nouveau sur ce forum et j'ai commencé python il y a quelques jours en vu de faire un agrégateur personnel sur excel de notes jeux vidéos et cinéma.

    Pour me faire la main je teste sur le site SensCritique.com

    À partir d'un premier programme j'ai récupéré tous les noms de jeux de borne d'arcade ainsi que leur lien href, pour par la suite récupérer d'autres informations et c'est là que je bloque.
    Voilà déjà ce que ça donne sur excel : Arcade [SC].xlsx

    Voici comment se présente le site.
    Je fais ma recherche qui me présente les différents jeux :

    Jeu01 <lien href01>
    Jeu02 <lien href02>
    Jeu03 <lien href03>
    ...

    Et en atteignant la page du lien je veux récupérer la note ainsi que le nombre de votants.

    Pour un jeu isolé c'est facile.
    En revanche ce que je n'arrive pas à faire c'est une boucle pour dire à mon programme :
    - Va dans le href du jeu 01 et récupère telles informations.
    - Ensuite tu fais pareil avec le href du jeu 02.
    - Ensuite tu fais pareil avec le href du jeu 03.
    - Et ainsi de suite jusqu'au jeu 2153.

    J'utilise xlwings car je modifie en parallèle en live mon excel et je le met à jour ensuite via python. J'aime faire des aller-retour entre les deux.

    Voilà ce que donne le programme actuellement fonctionnel pour un jeu. Donc sans boucle :
    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
    41
    42
    43
    44
    #-----STEP_01---------------------------------------------------Librairies.
    import requests
    from bs4 import BeautifulSoup
    import xlwings as xw
     
    wb = xw.Book('E:\Pythons\Arcade [SC].xlsx')
    ws1 = wb.sheets['Tab1']
     
     
    #-----STEP_02---------------------------------------------------URLs et nombre de jeux.
    urls = ws1.range('D2:D2154').value
    #---------------#
    # Arcade        #
    #---------------#
    nbJeux = 2153
     
    index = 0
     
    page = requests.get(urls[index])               #Requête
    soup=BeautifulSoup(page.text, "html.parser")   #Contenu
     
     
    listScore = soup.findAll('span', class_="pvi-scrating-value")
    listVotants = soup.findAll('b', class_="pvi-stats-number d-link-reverse")
     
     
    score=listScore[0]
    votants=listVotants[0]
     
    news_score=[]
    for s in listScore:
      news_s={}
      news_s=s.text
      news_score.append(news_s)
     
    news_votants=[]
    for v in listVotants:
      news_v={}
      news_v=v.text
      news_votants.append(news_v)
     
     
    ws1.range('F2:F5').value = news_s
    ws1.range('G2:G5').value = news_v
    Merci à tous par avance pour votre éclairage car là je commence à être un peu pommé.
    Bien sûr j'ai déjà testé pas mal de choses avant de faire ce post en fouillant sur le net mais je dois raté quelque chose.

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

    Si çà marche avec index = 0, il faut recommencer avec les index suivants... ce qui s'appelle faire une boucle.

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

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2021
    Messages : 6
    Par défaut
    Bonjour Wiztricks,

    Merci pour ton retour.

    Oui ça j'avais bien compris qu'il fallait faire en sorte de changer la valeur d'index. C'est la manipulation que je ne connais pas.

    Je ne vais pas copier coller 2152 fois "index = x"...
    Je précise, la manipulation pour que index change de valeur en +1 automatiquement après chaque ajout dans ma liste de nouvelles valeurs. (Donc note et nombre de votants)

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

    Citation Envoyé par Soran28 Voir le message
    Oui ça j'avais bien compris qu'il fallait faire en sorte de changer la valeur d'index. C'est la manipulation que je ne connais pas.
    C'est une construction de base qu'on apprend dans tous les tutos et qui ressemble à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i in range(...):
         print(i)
    Après si vous venez ici juste parce que vous voulez coder un truc sans vous prendre le chou à ouvrir un tuto...
    Je pense qu'on perd son temps à essayer de vous aider... donc bonne continuation.

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

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2021
    Messages : 6
    Par défaut
    Visiblement vous ne m'avez pas compris. Peut-être que votre condescendance vous a quelques peu aveuglé.

    Je sais ce qu'est une boucle, y compris la base de cela, sinon je n'aurai pas pris la peine de m'inscrire sur ce forum pour chercher plus d'explications.

    Voici la portion de code que j'ai écris avant-hier pour avoir les liens href ainsi que les noms des jeux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #-----STEP_08---------------------------------------------------Gestion de la pagination.
    def getPages(_nbPages, _url):
        liste_finale = pd.DataFrame()
        for i in range (_nbPages):
            liste = getPage(_url + urlPages + str(i+1))
            liste_finale = pd.concat([liste_finale, liste], ignore_index=True)
        return liste_finale
     
    liste_totale = getPages(nbPages, url)
    liste_totale.head()
    Et comme vous pouvez le constater, il y a une boucle. Vous pensez bien que je n'ai pas scrapé 2153 noms et liens en le faisant sans boucles...

    Sauf que dans mon cas ça ne fonctionne pas en utilisant cette méthode. Et oui peut être que la réponse est toute bête mais comme je l'ai mentionné ça fait moins d'une semaine que je programme en python. Le seul programme que j'ai appris avant celui-ci était du html... Et donc l'erreur toute bête, puisque à vous lire ça à l'air vraiment simple, moi je ne la vois pas.

    Ceci dit je pense m'en sortir pas trop mal pour un débutant non ? Mais si ce forum n'est réservé qu'à l'élite et bien je vous le laisse.

    Bonne continuation.

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Bonjour.

    Qu'est-ce qu'il ne fonctionne pas dans ta boucle exactement ?

  7. #7
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 241
    Par défaut
    hello,
    Citation Envoyé par Soran28 Voir le message
    Visiblement vous ne m'avez pas compris. Peut-être que votre condescendance vous a quelques peu aveuglé.
    Sauf que dans mon cas ça ne fonctionne pas en utilisant cette méthode. Et oui peut être que la réponse est toute bête mais comme je l'ai mentionné ça fait moins d'une semaine que je programme en python. Le seul programme que j'ai appris avant celui-ci était du html... Et donc l'erreur toute bête, puisque à vous lire ça à l'air vraiment simple, moi je ne la vois pas.
    comme le demande Arioch, pour que l'on puisse t'aider il nous faut plus d'informations :
    1 - Le code complet où cela ne fonctionne pas
    2 - Le problème rencontré (message d'erreur, variable qui ne fait pas ce qu'on veut etc...)

    Quand cela ne fonctionne pas, le mieux c'est de faire du pas à pas et observer les variables sur chaque instruction.

    Ami calmant, J.P

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

    Citation Envoyé par Soran28 Voir le message
    Sauf que dans mon cas ça ne fonctionne pas en utilisant cette méthode.
    Pourtant c'est comme ça que ça doit fonctionner... reste à montrer ce que vous avez essayé et raconté ce qui ne se passe pas bien (ou le message d'erreur)...
    à quoi sert de demander de l'aide? On ne va pas se déplacer pour voir!

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

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

Discussions similaires

  1. [shell] variable de recherche à partir d'une liste
    Par aerane dans le forum Shell et commandes GNU
    Réponses: 47
    Dernier message: 27/11/2012, 10h17
  2. Indexation fichiers pour recherche à partir d'une base
    Par cedy-kassy dans le forum Général Java
    Réponses: 3
    Dernier message: 10/04/2012, 10h30
  3. Réponses: 2
    Dernier message: 12/07/2010, 15h10
  4. [MySQL] effectuer recherche à partir d'une liste deroulante
    Par manguigs dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/05/2009, 16h48
  5. Moteur de recherche à partir d'une liste de critères
    Par ionnette dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 27/06/2008, 09h30

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