我正在尝试使用" 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
但我不知道如何提取此值并将其写入文件*
答案 0 :(得分:0)
...这显然是以unicode编码的所有标题的列表。
不正确的。它是字符串中包含的字符的表示。正如您使用REPL发现的那样,字符串本身确实包含您期望的字符。
如果您需要将这些字符写入文件,则需要选择文件的编码并在打开时使用。
with io.open('output.txt', 'w', encoding='utf-8') as fp: