You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将爬取到的十六进制编码转换为正常可读文本

问题根因

你之前的转换方案全部失效,核心是认错了待处理内容的编码格式:字符串里ç、ã这类内容是HTML十六进制字符实体,不是Python原生支持的Unicode转义序列,所以针对Python原生转义的处理逻辑全部不生效。另外你第一次调用encode时参数拼写错误,把utf-8错写为ut-8,代码本身就会抛出编码LookupError。

推荐解决方案

方案1:用Python标准库html模块转换(最适配爬虫场景)

Python3内置的html模块自带HTML实体反转义能力,不需要安装任何第三方依赖,调用html.unescape()即可一次性转换所有格式的HTML实体(包括十六进制实体、十进制实体、HTML命名实体),代码如下:

import html

raw_text = 'Hospital Nossa Senhora da Conceição, Porto Alegre, Brazil,Hospital de Base São José do Rio Preto, São José Do Rio Preto, Brazil'
clean_text = html.unescape(raw_text)
print(clean_text)

运行后输出和你预期完全一致:

Hospital Nossa Senhora da Conceição, Porto Alegre, Brazil,Hospital de Base São José do Rio Preto, São José Do Rio Preto, Brazil

方案2:爬虫解析阶段自动处理

如果你是用BeautifulSoup这类HTML解析库爬取的内容,不需要单独做字符串转换:正常调用.text提取页面文本时,解析库会自动把所有HTML实体转成对应可读字符,从源头就不会拿到带实体的原始字符串。

之前方案失效说明
  • 直接调用encode("utf-8")的作用是把字符串按UTF-8规则转成字节对象,本身没有识别、转换HTML实体的逻辑,不可能得到正确结果
  • text.encode('utf-8').decode('unicode-escape')这套逻辑只对Python原生的\xXX、\uXXXX格式转义生效,对HTML实体特有的&+#前缀格式完全不识别,自然转换失败

内容的提问来源于stack exchange,提问作者Ad_sh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 08:09:21