我使用Python Scrapy抓取this link。所有的文件都有# -*- coding: utf-8 -*-
在開始Python Scrapy不返回中文字符
並提取產品的標題,我有這個代碼。
response.css("h1.d-title::text").extract_first()
這說明
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
如果我去做
response.css("h1.d-title::text").extract_first().decode('gbk').encode('utf-8')
它給我的錯誤
UnicodeEncodeError: 'ascii' codec can't encode characters in position 4-19: ordinal not in range(128)
我在網上嘗試了其他的替代方法,但都沒有成功。
雖然如果我在Python終端(無Scrapy)中這樣做,它完全打印中文!
>>> 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外貿批發
爲什麼它給出正確的輸出print
?