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

Python使用BeautifulSoup网页抓取提取文本出现乱码问题求解

乱码原因

出现该乱码是网页内容的UTF-8编码被错误以ISO-8859-1(Latin-1)编码解码导致的字符异常,核心问题是requests自动识别网页编码时出现偏差。

解决方法

你可以任选以下任意一种方案修改代码:

  • 方案1:手动指定requests响应编码后使用文本内容解析
resp = requests.get(url)
# 强制指定编码为UTF-8,覆盖requests的自动识别结果
resp.encoding = 'utf-8'
tree = html.fromstring(resp.text)
element = tree.xpath('/html/body/div[1]/div[7]/div[2]/text()')
t = element[1]
print(t)
  • 方案2:手动将字节内容按UTF-8解码后再解析
resp = requests.get(url)
# 直接对字节内容做UTF-8解码
html_content = resp.content.decode('utf-8')
tree = html.fromstring(html_content)
element = tree.xpath('/html/body/div[1]/div[7]/div[2]/text()')
t = element[1]
print(t)
验证&排查

修改代码前可先打印resp.encoding确认requests自动识别的编码,如果输出为ISO-8859-1即可确认是编码识别错误问题,上述方案可解决该场景的乱码。
如果修改代码后打印仍显示乱码,排查运行代码的终端编码是否为UTF-8:Windows系统的CMD/PowerShell默认使用GBK编码,不支持特殊UTF-8字符显示,可切换到支持UTF-8的终端(如VS Code内置终端、Git Bash)运行代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:45:04