2016-11-04 2 views
0

Ich kratze Wikipedia mit BeautifulSoup4 in Python.Wie kodiere ich bestimmte Zeichen zu HTML in Python

data = urllib2.urlopen(wikiurl) 
soup = BeautifulSoup(data, 'html.parser') 

I

dann
for link in soup.find_all('p'): 
    completehtml = completehtml + str(link) 

verwenden, um den HTML-Code für ein paar Absätze (Die for-Schleife zu erhalten hat, eine Pause Zustand unter Verwendung eines Zählers, der die Anzahl der Absätze zählt und bricht dann, wenn sie die Grenze erreichen)

Jetzt nachdem diese Daten gekratzt wurden. Ich muss es auf einer Website online eingeben. (Ich muss es mit dem HTML eingeben, das verschrottet wird). Das Problem besteht darin, dass einige der Zeichen, z. B. en-dash, nicht in korrektem HTML sind, d. H. In HTML codiert sind, wodurch stattdessen Symbole angezeigt werden.

Sie drucken gut in Python. Aber wenn ich Methoden wie pyautogui oder die ActionChains-Klasse verwende, um Schlüssel zu senden und sie mit der verschrotteten Zeichenfolge einzugeben, werden sie als Symbole eingegeben.

Wie behebe ich das? Suche nach einer Lösung in Python.

EDIT: Okay, so ist das Hauptproblem, wenn Nicht-ASCII-Zeichen im verschrottet html sind. Sie werden zu "latin-1" dekodiert, wenn sie in die Zwischenablage kopiert oder mit der Methode send keys von python eingegeben werden.

EDIT: muß bestimmte HTML-Entitäten konvertieren dann auf Unicode sich nach dem Austausch bestimmt Unicode substirngs wieder in HTML zu verwandeln.

+0

Haben Sie den HTML-Code unescape brauchen? Id.e. ersetzen "©" mit ©? – hlfrmn

+0

Nein das Gegenteil, also wenn ein En-Bindestrich eingegeben wird. Ich brauche es als '–' anstelle von '-' – bluescreenofdeath2016

+0

Verwenden Sie Suchen und Ersetzen. [Hier] (https://dev.w3.org/html5/html-author/charref) ist eine Liste. – usr2564301

Antwort

Verwandte Themen