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 :
Merci à tous par avance pour votre éclairage car là je commence à être un peu pommé.
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
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.
Partager