Python convertir html en texte et imiter mise en forme
Je suis en train d'apprendre BeautifulSoup, et a trouvé de nombreux "html2text" des solutions, mais celui que je suis à la recherche d'doivent imiter la mise en forme:
<ul>
<li>One</li>
<li>Two</li>
</ul>
Deviendrait
* One
* Two
et
Some text
<blockquote>
More magnificent text here
</blockquote>
Final text
à
Some text
More magnificent text here
Final text
Je suis en train de lire la doc, mais je ne vois pas quelque chose de simple. Toute aide? Je suis ouvert à l'aide de quelque chose d'autre que beautifulsoup.
Vous voulez quelque chose qui va tourner balises html comme format markdown?
OriginalL'auteur Mikhail | 2013-03-25
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à Aaron Swartz est html2text script (peut être installé avec
pip install html2text
). Notez que la sortie est valide Markdown. Si, pour une raison qui n'a pas l'adapter entièrement à vous, certains trivial tweaks devrait vous obtenez la sortie exacte à votre question:Pas sûr que j'ai suivi -- comment voulez-vous les liens, les images à être manipulés?
Disons que les images à être ignorées, et des liens pour être en format
text (link)
Son site est down en ce moment, donc je ne peux pas vous donner plus de détails.OriginalL'auteur root
J'ai le code pour une tâche simple: Supprimer les balises HTML, et d'insérer des retours à la ligne, à des endroits appropriés. Peut-être que cela peut être un point de départ pour vous.
Python
textwrap
module pourrait être utile pour la création de retrait des blocs de texte.http://docs.python.org/2/library/textwrap.html
Il peut être superflu regexes gauche dans le code.
OriginalL'auteur Eike
Python intégré dans le html.analyseur (HTMLParser dans les versions antérieures) module peut être facilement étendu pour créer un simple traducteur que vous pouvez adapter à vos besoins exacts. Il vous permet de crochet dans certains événements que l'analyseur se nourrit à travers le HTML.
En raison de sa nature simple, vous ne pouvez pas naviguer dans le code HTML de l'arbre que vous pouvez avec une Belle Soupe (par exemple, une sœur, un enfant, un parent nœuds, etc), mais pour un cas simple comme la vôtre, il devrait être suffisant.
html.analyseur de page d'accueil
Dans votre cas vous pouvez l'utiliser comme ceci en ajoutant la mise en forme appropriées à chaque fois qu'une balise de début ou de fin de balise de type spécifique est rencontrés :
OriginalL'auteur samaspin