Ich brauche Hilfe mit einem Schaber ich schreibe. Ich versuche, einen Tisch mit Hochschulrankings zu kratzen, und einige dieser Schulen sind europäische Universitäten mit fremden Namen in ihren Namen (z. B. ä, ü). Ich kratze bereits einen anderen Tisch auf einer anderen Seite mit ausländischen Universitäten auf genau die gleiche Weise, und alles funktioniert gut. Aus irgendeinem Grund funktioniert der aktuelle Scraper jedoch nicht mit fremden Zeichen (und bei der Analyse von fremden Zeichen sind die beiden Scraper genau gleich).Problem mit Scraping-Site mit fremden Zeichen
Hier ist, was ich tue Dinge versuchen & funktioniert:
Declare Codierung auf der ersten Zeile der Datei:
# -*- coding: utf-8 -*-
importieren & mit Smart Unicode von django Rahmen von django.utils.encoding import smart_unicode
school_name = smart_unicode(html_elements[2].text_content(), encoding='utf-8', strings_only=False, errors='strict').encode('utf-8')
Verwenden Sie die Verschlüsselungsfunktion, wie oben bei der Verkettung mit der Funktion smart_unicode zu sehen. Ich kann mir nicht vorstellen, was ich sonst falsch machen könnte. Bevor ich mich mit diesen Scraper beschäftigt habe, habe ich wirklich nicht viel über verschiedene Kodierungen verstanden, also war es ein bisschen eine Augenöffner-Erfahrung. Ich habe versucht, die folgenden zu lesen, aber immer noch nicht dieses Problem
-
in einer Codierung überwinden
Ich verstehe, dass, jedes Zeichen ist eine Zahl zugewiesen, die in Hexadezimal, Binär usw. ausgedrückt werden kann. Verschiedene Codierungen haben unterschiedliche Kapazitäten für wie viele Sprachen sie unterstützen (z. B. ASCII unterstützt nur Englisch, UTF-8 unterstützt alles, was es scheint. Ich habe jedoch das Gefühl, alles Notwendige zu tun, um sicherzustellen, dass die Charaktere korrekt gedruckt werden. Ich weiß nicht, wo mein Fehler ist, und es macht mich verrückt. Bitte helfen Sie !!
FYI, (1) legt nur die Codierung der Python-Quelldatei fest, sodass Sie Nicht-ASCII-Zeichen in den Code einbetten können; es tut nichts wrt. Input-Output. –
Ah ok, das wusste ich nicht. Danke, dass du mich informiert hast. – user642547
'ASCII unterstützt nur Englisch' Nun, nicht ganz. Es gibt andere Sprachen, die von ASCII "unterstützt" werden. – dda