如何在python中提取unicode字符的真正价值?

时间:2015-03-10 00:52:00

标签: python unicode scrapy

我正在尝试使用" scrapy"构建网站解析器。我目前的目标是在以下页面中提取列表的所有标题:https://www.avito.ru/leningradskaya_oblast_kirovsk/kvartiry/prodam/1-komnatnye(语言:俄语)。

然而,使用

response.xpath('here_comes_the_path_to_a_title').extract()

我得到这样的东西:

[u' \ n 1- \ u043a \ u043a \ u0432 \ u0430 \ u0440 \ u0442 \ u0438 \ u0440 \ u0430,56 \ u043c \ xb2,4 / 5 \ u044d \ u0442。&# 39 ;,  你' \ n 1- \ u043a \ u043a \ u0432 \ u0430 \ u0440 \ u0442 \ u0438 \ u0440 \ u0430,32 \ u043c \ xb2,3 / 3 \ u044d \ u0442。',  你' \ n 1- \ u043a \ u043a \ u0432 \ u0430 \ u0440 \ u0442 \ u0438 \ u0440 \ u0440,48 \ u043c \ xb2,11 / 16 \ u044d \ u0442。',  你' \ n 1- \ u043a \ u043a \ u0432 \ u0430 \ u0440 \ u0442 \ u0438 \ u0440 \ u0430,42 \ u043c \ xb2,1 / 4 \ u044d \ u0442。',  你' \ n 1- \ u043a \ u043a \ u0432 \ u0430 \ u0440 \ u0442 \ u0438 \ u0440 \ u0430,37 \ u043c \ xb2,1 / 9 \ u044d \ u0442。',  你' \ n 1- \ u043a \ u043a \ u0432 \ u0430 \ u0440 \ u0442 \ u0438 \ u0440 \ u0430,42 \ u043c \ xb2,3 / 4 \ u044d \ u0442。',  你' \ n 1- \ u043a \ u043a \ u0432 \ u0430 \ u0440 \ u0442 \ u0438 \ u0440 \ u0430; 45 \ u043c \ xb2,3 / 3 \ u044d \ u0442。',]

这显然是以unicode编码的所有标题的列表。

现在,问题来了。我希望这些项目(上面列表的值)以原始形式(就像它们是在互联网页面上用原始语言编写的)。 例如,我想要一本字典:

{'title': 'the_first_value_of_the_above_list_in_original_language'}

稍后将此类词典列表存储在JSON或CSV文件中。

是否可以解码这些unicode字符串并获取其原始值?

* P.S。我还注意到我在python shell中使用print函数得到原始值:

>>> str = u'\n 1-\u043a  \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430, 56 \u043c\xb2, 4/5 \u044d\u0442.'
>>> print str 

但我不知道如何提取此值并将其写入文件*

1 个答案:

答案 0 :(得分:0)

  

...这显然是以unicode编码的所有标题的列表。

不正确的。它是字符串中包含的字符的表示。正如您使用REPL发现的那样,字符串本身确实包含您期望的字符。

如果您需要将这些字符写入文件,则需要选择文件的编码并在打开时使用。

with io.open('output.txt', 'w', encoding='utf-8') as fp: