9
votes

Comment utiliser Python sur DIFF Deux fichiers HTML

Je veux utiliser python sur DIFF deux fichiers HTML:

Exemple: P>

diff_html = """
<del><p>i love it</p></dev><ins><h2>i love it</h2></ins>
"""


1 commentaires

6 Réponses :


13
votes

lxml peut faire quelque chose de similaire à ce que vous voulez. Du Docs:

>>> diff.htmlDiff(a,b)
>>> '<del><p>i</del> <ins><h2>i</ins> love <del>it</p></del> <ins>it </p></ins>'


5 commentaires

J'ai essayé, mais ce que j'ai eu est >>> de lxml.html.diff Import HTMLDIFF >>> DOC1 = '' '

Voici du texte. ' '' >>> DOC2 = '' '

Voici un texte. ' '' >>> Imprimer HTMLDIFF (DOC1, DOC2)

Voici un texte.


Mon tag p a changé pour changer H2, mais cela n'a pas montré la différence


Le marquage LXML.HTMLL.DIFF DOCUEMMNT: est généralement ignoré, avec le marquage de new_html préservé, et éventuellement du marquage de Old_HTML (bien qu'il soit considéré comme acceptable de perdre une partie de l'ancien balisage). Seuls les mots du code HTML sont diffusés.


Tu as raison, ça marche beaucoup pire que je me suis souvenu. J'ai ajouté une alternative, ce n'est pas exactement ce que vous voulez, mais peut être utile.


C'est bien! Si cela fonctionne pour vous, vous devriez le poster comme une réponse et l'accepter.



2
votes

Je contme deux python lib qui est utile:

  1. HTMLTREDIFF
  2. HTMLDIFF

    Mais, les deux utilisent la diffibibib de Python à diffiber le texte diff. Mais je veux utiliser la diff. Google.


0 commentaires

0
votes

afaik, python a une construction dans Diffffib qui peut le faire. < / p>


0 commentaires

0
votes

Ce n'est pas exactement ce que votre sortie est, mais la bibliothèque standard DIFFLIB A un outil HTMLDiff simple de celui-ci, qui construira une table DIFF HTML pour vous.

import difflib

html_1 = """
<p>i love it</p>
"""
html_2 = """ 
<h2>i love it </p>
"""

htmldiff = difflib.HtmlDiff()
html_table = htmldiff.make_table([html_1], [html_2]) # each item is a list of lines


0 commentaires

1
votes

Vous pouvez utiliser diaphibib.ndiff () pour rechercher et remplacer le " - " / " + " avec votre HTML souhaité. xxx

Le résultat: xxx


0 commentaires

2
votes

Checkout DIFF2HTMLComPare (Divulgation complète: je suis l'auteur). Si vous essayez de visualiser simplement les différences, cela peut vous aider. Si vous essayez d'extraire les différences et de faire quelque chose avec elle, vous pouvez utiliser DIFFLIH comme suggéré par d'autres (le script ci-dessus simplement wraps diffibibib et utilise des pycments pour la sélection de la syntaxe). Doug Hellmann a fait un très bon travail en détaillant comment utiliser Diffffibib, je suggérerais de vérifier son tutoriel .


0 commentaires