Ich kratze this link mit Python Scrapy. Alle Dateien haben # -*- coding: utf-8 -*-
am AnfangPython Scrapy gibt keine chinesischen Zeichen zurück
Und um Titel des Produktes zu extrahieren, habe ich diesen Code.
response.css("h1.d-title::text").extract_first()
Dies zeigt
2017\xe6\x98\xa5\xe5\xa4\x8f\xe6\x96\xb0\xe6\xac\xbe\xe5\xa5\xb3\xe5\xa3\xab\xe8\xbf\x90\xe5\x8a\xa8\xe9\x9e\x8b\xe9\x9f\xa9\xe7\x89\x88\xe4\xbc\x91\xe9\x97\xb2\xe7\xbd\x91\xe5\x8d\x95\xe9\x9e\x8bsport shoes men\xe5\xa4\x96\xe8\xb4\xb8\xe6\x89\xb9\xe5\x8f\x91
Und wenn ich
response.css("h1.d-title::text").extract_first().decode('gbk').encode('utf-8')
Its me
UnicodeEncodeError: 'ascii' codec can't encode characters in position 4-19: ordinal not in range(128)
Ich habe andere Alternatvies online versucht, aber nichts davon hat funktioniert.
Obwohl, wenn ich dies in Python Terminal (ohne Scrapy) tun, druckt es perfekt chinesisch !.
>>> s = "2017\xe6\x98\xa5\xe5\xa4\x8f\xe6\x96\xb0\xe6\xac\xbe\xe5\xa5\xb3\xe5\xa3\xab\xe8\xbf\x90\xe5\x8a\xa8\xe9\x9e\x8b\xe9\x9f\xa9\xe7\x89\x88\xe4\xbc\x91\xe9\x97\xb2\xe7\xbd\x91\xe5\x8d\x95\xe9\x9e\x8bsport shoes men\xe5\xa4\x96\xe8\xb4\xb8\xe6\x89\xb9\xe5\x8f\x91"
>>> print s
2017春夏新款女士运动鞋韩版休闲网单鞋sport shoes men外贸批发
Warum gibt es korrekte Ausgabe mit print
?