当前位置: 首页 > 知识库问答 >
问题:

如何提取python中unicode字符的真实值?

郎磊
2023-03-14

我正在尝试使用“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.', u'n 1-\u043a \u0432\u0430\u0440\u0442\u0438\u0440\u0430\ 32 \u043c\xb2, 3/3 \u044d\u0442.', u'\n 1-\u043a \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430, 48 \u043c\xb2, 11/16 \u044d\u0442.', u'\n 1-\u043a \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430\u0430\u0430\u0430\u0430\ 42 \u043c\xb2, 1/4 \u044d\u0442.', u'\n 1-\u043a \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430, 37 \u043c\xb2, 1/9 \u044d\u0442.', u'\n 1-\u043a \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430, 42 \u043c\xb2, 3/4 \u044d\u0442.', u'n 1-\u043a \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430\u0430\u043c\xb2, 3/3 \u0444d\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个答案

岳浩
2023-03-14

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

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

如果您需要将这些字符写到一个文件中,那么您需要为该文件选择一种编码,并在打开时使用它。

with io.open('output.txt', 'w', encoding='utf-8') as fp:
 类似资料:
  • 问题内容: 我使用函数对AJAX发送到PHP的JS对象进行字符串化处理。 当JSON.stringify函数将Unicode字符编码为格式(例如)时,就会出现问题。我的问题是如何在PHP中将这些字符转换为常规unicode字符? 问题答案: 看到输出UTF-16?有点卡住 这将转换为UTF-8:

  • 问题内容: 我将提取字符串中包含的所有数字。哪个更适合pur 例: 结果: 问题答案: 如果只想提取正整数,请尝试以下操作: 我认为这比正则表达式示例更好,原因有三点。首先,你不需要其他模块;其次,它更具可读性,因为你无需解析迷你语言;第三,它更快(因此可能更): 这将无法识别浮点数,负整数或十六进制格式的整数。如果你不能接受这些限制,则可以通过以下亭亭玉立的答案解决问题。

  • 问题内容: 当我尝试使用“ unicode(head.contents [3])”获取标签的内容时,我得到类似于以下的输出:“ Christensen Sk \ xf6ld”。我希望转义序列作为字符串返回。如何在python中做? 问题答案: 假设Python将名称视为普通字符串,则首先必须将其解码为unicode: 实现此目的的另一种方法: 注意字符串前面的“ u”,表示它是未编码的。如果进行打

  • 问题内容: 我有一个类似“Tanım”的Unicode字符串,以某种方式编码为“ Tan%u0131m”。我如何将这个编码后的字符串转换回原始的unicode。显然urllib.unquote不支持unicode。 问题答案: %uXXXX是一种非标准的编码方案,尽管实施仍继续存在于JavaScript领域,但已被w3c拒绝。 更常见的技术似乎是对字符串进行UTF-8编码,然后使用%XX使用%XX

  • 问题内容: 我不知道如何从字符串中获取Unicode字符。例如,如果字符串是“你好”,我如何获得第一个字符“你”? 从另一个地方我得到一种方法: 确实有效。但是我仍然有一些问题: 还有另一种方法吗? 为什么在Go中不能从字符串中获取Unicode字符,却可以获取字节数据? 问题答案: 首先,您可能需要阅读https://blog.golang.org/strings 。它将回答您的部分问题。 Go

  • 问题内容: 我有一个字符串,该字符串是通过阅读HTML网页获得的,其中包含带有项目符号的项目符号,该项目符号带有“•”之类的符号。请注意,该文本是使用Python 2.7的网页的HTML来源。 我知道项目符号字符的unicode字符为,但是实际上如何用其他东西替换该unicode字符呢? 我试着做 但它似乎不起作用…我该怎么做? 问题答案: 将字符串解码为Unicode。假设它是UTF-8编码的: