Programmation avec pandas read_html
Fermé
ElGringo
-
Modifié le 5 déc. 2022 à 10:16
mamiemando Messages postés 33363 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 novembre 2024 - 5 déc. 2022 à 11:00
mamiemando Messages postés 33363 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 novembre 2024 - 5 déc. 2022 à 11:00
A voir également:
- Programmation avec pandas read_html
- Application de programmation - Guide
- Programmation - Guide
- Programmation logo tortue télécharger - Télécharger - Études & Formations
- Programmation carte à puce vierge ✓ - Forum Matériel & Système
- Programmation binaire - Guide
1 réponse
mamiemando
Messages postés
33363
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
16 novembre 2024
7 801
Modifié le 5 déc. 2022 à 11:01
Modifié le 5 déc. 2022 à 11:01
Bonjour
Il y a beaucoup de choses qui ne vont pas dans ton script.
- l3-l4: Tu n'affectes ni l'URL ni le header dans des variables correspondantes, or tu les utilises pour faire .
- l5: les variables url et headers ne sont pas déclarées.
- l6: il manque import requests
- l7: il manque import pandas as pd. De plus, pandas.read_html s'attend une table HTML, pas une page entière. Il faudrait donc extraire de html_page_bilan chacune des tables qui t'intéressent. Pour cela tu peux utiliser BeautifulSoup.
- l10-l14: le code n'est pas indenté, or en python cela est indispensable de le faire correctement pour que l'interpréteur python comprenne la structure de ton programme.
- l14: cette ligne seule ne sert à rien, peut être voulais-tu écrire print(Balance_Sheet) ?
Je vais délibérément ignorer la partie requests / headers (car sans passer les bons headers tu ne récupères pas le contenu intégral de la page, donc la partie qui contient les tables) et me focaliser dans ce qui suit sur read_html puisque c'est sur ça que porte la discussion.
from bs4 import BeautifulSoup import pandas as pd from pprint import pprint html_data = """<html> <body> <table> <tr> <td>1</td> <td>11</td> </tr> <tr> <td>111</td> <td>1111</td> </tr> </table> <table> <tr> <td>2</td> <td>22</td> </tr> <tr> <td>222</td> <td>2222</td> </tr> </table> </body> </html>""" soup = BeautifulSoup(html_data) dfs = list() for table in soup.find_all("table"): df = pd.read_html(str(table)) dfs.append(df) pprint(dfs)
Résultat :
[[ 0 1
0 1 11
1 111 1111],
[ 0 1
0 2 22
1 222 2222]]
Bonne chance