À l'aide de pandas à lire téléchargé le fichier html
Que le titre, j'ai essayé d'utiliser read_html
mais me donne l'erreur suivante:
In [17]:temp = pd.read_html('C:/age0.html',flavor='lxml')
File "<string>", line unknown
XMLSyntaxError: htmlParseStartTag: misplaced <html> tag, line 65, column 6
Qu'ai-je fait de mal?
mise à jour 01
Le code HTML contient du javascript sur le dessus et puis un tableau html. J'ai utilisé de la R afin de la traiter par l'analyse de l'html en XML paquet de me donner un dataframe. Je veux le faire en python, dois-je utiliser autre chose comme beautifulsoup avant de la donner à des pandas?
Eh bien quel est le contenu de age0.html?
pandas.pydata.org/pandas-docs/dev/generated/...: "saveur : str ou rien", contenant des chaînes de caractères Le moteur d'analyse à utiliser. ‘bs4 " et " html5lib’ sont synonymes les uns avec les autres, ils sont à la fois là pour assurer la compatibilité ascendante. La valeur par défaut d'Aucune essaie d'utiliser lxml à analyser et, si cela échoue, il retombe sur bs4 + html5lib." Ma conjecture est que le html n'est pas bien formé et que l'analyse syntaxique est un échec. essayez différentes analyseur? flavor='bs4'
juste un autre. si pas clair à partir de précieux remarque. read_html méthode peut utiliser de belles soupe comme analyseur découvrez les pandas de la documentation en lien ci-dessus. l'erreur de syntaxe me semble que si le HTML n'est pas bien formé, en utilisant un autre aprser pourrait être plus tolérant.
À l'aide de
Et vous obtenez cette erreur, car je me force à
pandas.pydata.org/pandas-docs/dev/generated/...: "saveur : str ou rien", contenant des chaînes de caractères Le moteur d'analyse à utiliser. ‘bs4 " et " html5lib’ sont synonymes les uns avec les autres, ils sont à la fois là pour assurer la compatibilité ascendante. La valeur par défaut d'Aucune essaie d'utiliser lxml à analyser et, si cela échoue, il retombe sur bs4 + html5lib." Ma conjecture est que le html n'est pas bien formé et que l'analyse syntaxique est un échec. essayez différentes analyseur? flavor='bs4'
juste un autre. si pas clair à partir de précieux remarque. read_html méthode peut utiliser de belles soupe comme analyseur découvrez les pandas de la documentation en lien ci-dessus. l'erreur de syntaxe me semble que si le HTML n'est pas bien formé, en utilisant un autre aprser pourrait être plus tolérant.
À l'aide de
lxml
pour cela (et vraiment tout code HTML mal formé) est une mauvaise idée. Vous devriez pip install beautifulsoup4
et pip install html5lib
et appel read_html
sans flavor
argument. Ces sera beaucoup plus lente, mais je vais le prendre lent et corriger plus rapide et incorrect toute la journée. Honnêtement, nous devrions avoir jeté lxml
depuis le début, mais c'est un peu trop tard pour ça.Et vous obtenez cette erreur, car je me force à
lxml
d'être strict. Dans le passé lxml
a chuté de données sur certains morceaux de code HTML mal formé, qui à mon humble avis est juste pas cool. Les autres libs, otoh, que de ne pas le faire et, par conséquent, ne pas faire tomber de données.OriginalL'auteur lokheart | 2014-07-31
Vous devez vous connecter pour publier un commentaire.
Je pense que vous êtes sur la bonne voie, à l'aide d'un analyseur html comme belle soupe. les pandas.read_html() lit un tableau html pas une page html.
Vous voulez faire quelque chose comme ça...
df = pd.read_html('path/to/file.html', flavor='bs4')
a bien fonctionné.OriginalL'auteur ZJS
tout d'abord installer les packages ci-dessous, pour l'analyse de but
ensuite, utilisez read_html " pour lire la table html sur une page html.
J'espère que cela aidera.
Bonne Chance!!
OriginalL'auteur srana