[Python] Comment gérer l'erreur de lecture pandas read_html

[Python] Comment gérer l'erreur de lecture pandas read_html

Est-il possible de lire des fichiers html avec la méthode appelée "read_html" des pandas? J'ai pensé, et quand je l'ai essayé, j'ai eu différentes erreurs d'affilée ...


** ▼ 4 problèmes (erreurs) ** ①「ImportError: lxml not found, please install it」

②「ImportError: html5lib not found, please install it」

③「ImportError: BeautifulSoup4 (bs4) not found, please install it」

④「ValueError: No tables found」


** ▼ Point de correspondance ** -Vous devez installer certaines bibliothèques pour l'utiliser.

-L'acquisition de données est uniquement pour les tables.

■ Exemple de méthode d'adaptation

** Installez les 3 bibliothèques suivantes ** puis Vous pouvez le faire en spécifiant ** la page contenant le tableau ** et en l'exécutant.

① Installation de la bibliothèque

Installation de la bibliothèque


pip install lxml
pip install html5lib
pip install bs4

② Exécution de l'acquisition de données

Exécution de l'acquisition de données


import pandas as pd

url = 'https://stocks.finance.yahoo.co.jp/stocks/detail/?code=998407.O'
df = pd.read_html(url)

URL: Cours moyen de l'action Nikkei [998407]: Indice national-Yahoo! Finance

J'ai pu l'obtenir en toute sécurité.


### Supplément ** ▼ Pourquoi avez-vous besoin d'en installer 3? ** L'analyse des pages se fait avec Beautiful Soup 4. A ce moment, lxml est utilisé pour analyser la table. Utilisez html5lib lorsque lxml ne parvient pas à analyser html.

html5lib a une excellente capacité d'analyse et peut compléter le HTML, mais il est lourd.

Cependant, il est également recommandé d'installer html5lib.

** ▼ Ce que vous pouvez faire avec read_html ** Ne peut être utilisé qu'avec l'élément

. Éléments enfants , .

Page officielle

Notes sur la bibliothèque d'analyse HTML


## ■ Détails de l'erreur

Première erreur

Erreur


import pandas as pd

url = 'https://www.yahoo.co.jp/'
df = pd.read_html(url)

#production
# ImportError: lxml not found, please install it

On dit que lxml n'est pas installé.

Qu'est-ce que lxml?

Un type de bibliothèque python qui analyse html et xml.

Très léger. Cependant, l'analyse peut échouer car elle ne prend en charge que le balisage strict.

installation de lxml

pip install lxml

Deuxième erreur

Qu'est-ce que html5lib?

Lorsque j'ai installé lxml avec succès et l'ai exécuté à nouveau, une autre erreur était ...

「ImportError: html5lib not found, please install it」

C'est celui qui analyse html5. Des performances supérieures à lxml. Un balisage correct peut être généré automatiquement à partir d'un balisage non valide.

Au lieu de cela, c'est lourd.

Utilisé lorsque l'analyse html échoue dans lxml.

Installez html5lib

pip install html5lib


## Troisième erreur ### Qu'est-ce que BeautifulSoup4 (bs4)? Lorsque j'ai réussi à installer html5lib et à réexécuter le code, j'ai eu une nouvelle erreur ...

「ImportError: BeautifulSoup4 (bs4) not found, please install it」

BeautifulSoup4 (bs4) analyse html et xml.

Une bibliothèque qui sert de chef-d'œuvre pour l'analyse de page. Lxml et html5lib sont utilisés dans le back-end pour l'analyse de ce tableau.

Installation de BeautifulSoup4 (bs4)

pip install bs4

Quatrième erreur

Lorsque j'ai installé avec succès bs4 et exécuté à nouveau le code, j'ai eu une nouvelle erreur ...

「ValueError: No tables found」

Apparemment, seules les données de table sont disponibles. ..

Obtenir des données de table

En tant que site avec des données de tableau, essayez la page de cours moyen de l'action Nikkei [998407] de Yahoo Finance.

https://m.finance.yahoo.co.jp/stock?code=998407.O

read_html


import pandas as pd

url = 'https://stocks.finance.yahoo.co.jp/stocks/detail/?code=998407.O'
df = pd.read_html(url)

df

<détails>

Afficher les résultats de sortie </ summary>

python


[        0   1         2                   3
0 Cours moyen de l'action Nikkei NaN 19389.43 Par rapport à la veille+724.83(+3.88%),
       0             1
0 Qu'arrivera-t-il à la prévision du cours de l'action? Moyenne Nikkei de demain,
               0         1
0 Nikkei Cours moyen de l'action NY Dow
1 synthèse TOPIX NASDAQ
2 Index Jasduck S & P 500
3 Hong Kong Hansen FTSE 100
4 DAX complet de Shanghai
5 Mumbai SENSEX30 CAC 40,
                                              0  \
0 Picte d'or(Avec H)Autres retours(1 an)19.94%   
1 Global SDGs Stock Fund Autres rendements(1 an)5.27%   
2 eMAXIS Slim Global Stock(Tout pays)Autres retours(1 an)3.91%   
 
                                       1  
0 Pinebridge Capital Securities F(Avec H)Autres retours(1 an)6.35%  
1 Risk Control Global Asset Diversification Fund Autres rendements(1 an)4.81%  
2 aristocrate américain du dividende en actions(Type de règlement quatre fois par an)Retours d'actions internationaux(1 an)2.21%  ,
                                                    0  \
0 Taux d'augmentation globale des prix 1.Nouvelle ville HLD+45.45% 2.Sugai+28.30% 3.Amaga...   
 
                                                    1  
0 TSE 1ère section Taux d'augmentation des prix 1.Espèces Kaneko+19.95% 2.Segue G+18.28% 3.Kobayashi...  ]

Recommended Posts

, ,