Salut à tous !
Je suis en train de réaliser un projet dont le but est de récupérer les données de matchs nba à partir du site ESPN , à l'aide des modules beautifulsoup,request et panda pour ordonner (je précise que ce n'est qu'à but ludique). J'ai trouvé ce code , qui permet de récupérer et d'ordonner les différentes teams , leurs abréviations et leurs liens :
Ici , tout fonctionne . Mais lorsque que je réécris un programme sous le même modèle , pour reprendre leurs résultats (type "vs ....", "W/L" ,"score") , je n'arrive pas à ordonner les données avec panda , puisque la structure du site web ne me permet pas de séparer ces données de résultat que j'ai cité dans mes parenthèses , car ce n'est que du texte . J'aimerai donc pouvoir ordonner ces données sur le même type que le précédent programme . Voici le programme qui permet de récupérer les données voulues , celles que je souhaite ordonner :
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 import pandas as pd import requests #acceder à l'url from bs4 import BeautifulSoup #scrapper data url = 'http://espn.go.com/nba/teams' r = requests.get(url) soup = BeautifulSoup(r.text) tables = soup.find_all('ul', class_='medium-logos') teams = [] Abréviation = [] prefix_2 = [] teams_urls = [] for table in tables: lis = table.find_all('li') for li in lis: info = li.h5.a teams.append(info.text) url = info['href'] teams_urls.append(url) Abréviation.append(url.split('/')[7]) prefix_2.append(url.split('/')[8]) dic = {'url': teams_urls, 'prefix_2': prefix_2, 'Abréviation': Abréviation} teams = pd.DataFrame(dic, index=teams) teams.index.name = 'team' print(teams)
J'espère que vous avez compris mon problème , et merci de votre aide!
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 import pandas as pd import requests #acceder à l'url from bs4 import BeautifulSoup #scrapper data url = 'http://www.espn.com/nba/team/schedule/_/name/bos/boston-celtics' r = requests.get(url) soup = BeautifulSoup(r.text) tables = soup.find_all('ul', class_='game-schedule') résultat = [] for table in tables: lis = table.find_all('li') for li in lis: info = li résultat.append(info.text) print(résultat)
Partager