Python Scrapy输出馈送国际unicode字符(例如日语字符)

Python Scrapy输出馈送国际unicode字符(例如日语字符),python,unicode,scrapy,Python,Unicode,Scrapy,我是python和scrapy的新手,我正在学习dmoz教程。作为教程建议的起始URL的一个次要变体,我从dmoz示例站点选择了一个日语类别,并注意到我最终得到的提要导出显示的是unicode数值,而不是实际的日语字符 似乎我需要以某种方式使用,但我不确定如何让我的爬行器使用该对象而不是基本响应对象 我应该如何修改代码以在输出中显示日文字符 如何去掉方括号、单引号和包装输出值的“u” 最终,我希望有一个say的输出 オンラインショップ(这些是日文字符) 而不是 [u'\u30aa\u30f3\u

我是python和scrapy的新手,我正在学习dmoz教程。作为教程建议的起始URL的一个次要变体,我从dmoz示例站点选择了一个日语类别,并注意到我最终得到的提要导出显示的是unicode数值,而不是实际的日语字符

似乎我需要以某种方式使用,但我不确定如何让我的爬行器使用该对象而不是基本响应对象

  • 我应该如何修改代码以在输出中显示日文字符
  • 如何去掉方括号、单引号和包装输出值的“u”
  • 最终,我希望有一个say的输出

    オンラインショップ(这些是日文字符)

    而不是

    [u'\u30aa\u30f3\u30e9\u30a4\u30f3\u30b7\u30e7\u30c3\u30d7'](unicodes)

    如果你看我的截图,它对应于C7单元,一个文本标题

    这是我的spider(与教程中的spider相同,除了不同的start\u url):

    settings.py:

    FEED_URI = 'items.csv'
    FEED_FORMAT = 'csv'
    
    输出屏幕截图:
    (很抱歉,我没有足够的SO点数来发布图像)

    当您从页面中刮取文本时,它以Unicode格式存储

    您要做的是将其编码为UTF8之类的内容

    unicode_string.encode('utf-8')
    

    此外,当您使用选择器提取文本时,即使只有一个结果,也会将其存储在列表中,因此您需要选择第一个元素。

    刮取工作正常,问题在于如何将值写入磁盘。你是如何调用Scrapy来运行代码的?@Thomas我认为问题在于文本嵌入了列表中。一旦我从列表中提取它们,unicode字符就会正确显示。谢谢,我最终意识到它们存储在列表中,并最终使用
    if item['title']:item['title']=item['title'].pop()
    来提取它们。至于编码,在我提取后,它们会自动转换为正确的字符。顺便说一句,如果需要,我如何将TextResponse转换为Response?@fortuneRice我在解析泰米尔语内容时也有同样的问题。请共享解决此问题的代码。(我不明白你在哪里使用了.pop())@Mugunth删除的文本存储在列表数据结构中。.pop()用于从列表中提取项。希望有帮助。很抱歉再次打扰你。我不知道如何使用列表中的.pop()将数据存储到csv中。例如:我的解析定义类似于以下://for site in site:item=DmozItem()item['title']=site.select('a/text()).extract()item['link']=site.select('a/@href').extract()item['desc']=site.select('text()').extract()items.append(item)return items//如果您能让我知道这个.pop()在代码中应该放在哪里,那将很有帮助。
    unicode_string.encode('utf-8')