Ich versuche, den gesamten HTML-Code aus einer Zeichenfolge zu bereinigen, so dass die endgültige Ausgabe eine Textdatei ist. Ich habe ein paar Nachforschungen über die verschiedenen 'Konverter' angestellt und fange an, mich darauf zu konzentrieren, ein eigenes Wörterbuch für die Entitäten und Symbole zu erstellen und einen Ersatz für die Zeichenfolge auszuführen. Ich denke darüber nach, weil ich den Prozess automatisieren möchte und es gibt eine große Variabilität in der Qualität des zugrunde liegenden HTML. Um zu beginnen, die Geschwindigkeit meiner Lösung und eine der Alternativen zu vergleichen, zum Beispiel pyparsing, entschied ich mich, den Ersatz von \ xa0 mit der String-Methode replace zu testen. Ich erhalte eineSo arbeiten Sie mit Unicode in Python
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa0 in position 0: ordinal not in range(128)
Die eigentliche Codezeile
s=unicodestring.replace('\xa0','')
war Sowieso-Ich entschied, dass ich brauchte es mit einem r Vorwort so lief ich diese Codezeile:
s=unicodestring.replace(r'\xa0','')
Es läuft ohne Fehler, aber wenn ich ein Stück s sehe, sehe ich, dass das \ xaO immer noch da ist
Warum würden Sie '\ xa0' mit einem r voranstellen? Das macht es zu einer rohen Zeichenkette - das heißt, es enthält buchstäblich einen umgekehrten Schrägstrich, x, a, 0. Ohne das r enthielt es ein einzelnes Zeichen mit Hexadezimalcode a0, was ich denke, was Sie wollten. –
Weil ich versuchte zu erraten, warum ich den Fehler bekommen habe, und ich weiß, dass manchmal, um das Lesen zu erzwingen, es ein String-Literal machen muss und auch das \ xa0 ist, was tatsächlich in meiner Quelle existiert. Was ist Hex-Code a0? – PyNEwbie