2014-01-13 34 views
2

我使用阿拉伯字母和英文字母scrapy阿拉伯语字母Scrapy返回一些奇怪的东西

英文字母完美地工作。

然而,阿拉伯字母这样表示:

gs300 2006 \u0644\u0643\u0632\u0633 \u062c\u064a 

任何帮助,请?我用scrapy 0.20.2使用python。

我的方式提取数据是:

site.xpath('my selector').extract() 

和我所说的JSON操作从CMD这样

scrapy crawl dmoz -o items.json -t json 

回答

3

的字符串\u0000都是Unicode代码点。每个代表单个字符(例如,\u064a代表yeh)。要将这些字符转换为更有用的字符,您必须使用encode and decode正确处理Unicode字符串。

+0

我不是在这里打印数据。我只是提取并返回结果。所以我想这是没有代码我cad做的,对不对?我认为当我写json的时候,有一些来自cmd。我只是想,请纠正我 –

+1

'\ u' +四位十六进制数字是编码代表非ASCII字符的Unicode代码点的正确方式(请参阅http://www.json.org/)。因此,当要求Scrapy以JSON格式导出项目时,在items.json中看到“gs300 2006 \ u0644 \ u0643 \ u0632 \ u0633 \ u062c \ u064a”是完全正常的和预期的。我想所有都取决于你在Scrapy阶段之后如何使用'items.json'。但是,所有符合JSON的阅读器/解码器都应该适用于这种输入。你如何阅读'items.json',你有什么问题? –

+0

@pault。你是否暗示我正在提取JSON好。我只需要知道如何阅读它?我通过使用记事本++读取它。它是一个测试编辑器。我该怎么做? –