Fehlermeldung in mechanize lib -->ValueError: unichr() arg not in range(0x10000) (narrow Python build)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
bob1704
User
Beiträge: 27
Registriert: Dienstag 5. März 2013, 21:28

Hallo zusammenm,
ich probiere mit der mechanize lib, Infos aus einem HTML Code zu extrahieren.

Wenn ich mit

Code: Alles auswählen

for form in br.forms(): 
								print "Form name:", form.name
probieren über die html form tags zu iterrieren, kommt folgeden Meldung : ValueError: unichr() arg not in range(0x10000) (narrow Python build). Weiß einer wo da Problem liegt ?

Mein Vermutung ist, dass das Ganze was mit unicode -escape zu tun hat, da das Ganze nur bei bestimmten Urls wie beispielsweise https://www.amazon.de/dp/B000ORY8N4 auftritt. Gibts hier eventuell mit "B000ORY8N4" Probleme ?

Vllt weiß ja jmd abhilfe :-)

Gruß u schönes WE
Sirius3
User
Beiträge: 18254
Registriert: Sonntag 21. Oktober 2012, 17:20

@bob1704: das Problem ist, dass Mechanize nicht mit Entities wie 😊 umgehen kann, was dem Zeichen :) (was dieses Forum auch nicht darstellen kann) entspricht. Da das Projekt seit 5 Jahren tot ist, wird sich daran wohl auch nichts mehr ändern.

Da hilft wohl nur patchen:

Code: Alles auswählen

__builtins__.unichr = lambda n: ("\\U%08x" % n).decode('unicode-escape')
bob1704
User
Beiträge: 27
Registriert: Dienstag 5. März 2013, 21:28

Hi, danke schonmal für die gute Rückmeldung.

Könntest du mit vllt erklären, wo genau und wie ich den Code Schniosel eeinzuffügen hab ?

Danke u Gruß
Sirius3
User
Beiträge: 18254
Registriert: Sonntag 21. Oktober 2012, 17:20

@bob1704: am besten im Hauptprogramm nach den imports. Da fällt es im Zweifel auch sofort auf.
Antworten