J'utilise Python et BeautifulSoup pour analyser les pages HTML. Malheureusement, pour certaines pages (> 400 Ko), BeatifulSoup tronque le contenu HTML.Beautifulsoup, Python et la page automatique HTML tronquée?
J'utilise le code suivant pour obtenir l'ensemble des "div" s:
findSet = SoupStrainer('div')
set = BeautifulSoup(htmlSource, parseOnlyThese=findSet)
for it in set:
print it
À un certain moment, la sortie ressemble à:
correct string, correct string, incomplete/truncated string ("So, I")
bien, le htmlSource contient la chaîne "Alors, je m'ennuie", et bien d'autres. De plus, je voudrais mentionner que lorsque je fais un prettify() l'arborescence, je vois la source HTML tronquée.
Avez-vous une idée de comment résoudre ce problème?
Merci!
hasard est que le html est malformé. Publiez le code HTML pertinent. – nosklo
@nosklo: Plus de 400K? Peut-être une mauvaise idée. Afficher une preuve que la page n'est pas malformée serait plus agréable. Ou poster une preuve que l'application est en train de lire la page entière serait plus agréable. –
BeautifulSoup essaye de gérer le balisage mal formé, mais oui, je suis sûr qu'il peut être vaincu finalement. Essayez d'exécuter le code source HTML via http://validator.w3.org et cela devrait identifier les bits invalides (il y en aura très probablement des tonnes) –