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

Python爬取网页写入TXT文件时出现UnicodeEncodeError的原因

UnicodeEncodeError 解决:爬取网页写入TXT文件失败

爬取网页内容并写入TXT文件时触发编码错误,错误信息如下:

UnicodeEncodeError                        Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_10484/2570620311.py in <module>
      5 
      6 with open(f'{title}.txt', 'w')as file:
----> 7     file.write(transcript)
      8 
      9 #print(title)

~\anaconda3\lib\encodings\cp1252.py in encode(self, input, final)
     17 class IncrementalEncoder(codecs.IncrementalEncoder):
     18     def encode(self, input, final=False):
---> 19         return codecs.charmap_encode(input,self.errors,encoding_table)[0]
     20 
     21 class IncrementalDecoder(codecs.IncrementalDecoder):

UnicodeEncodeError: 'charmap' codec can't encode character '\ufb02' in position 32153: character maps to <undefined>

使用的代码:

import requests
from bs4 import BeautifulSoup

website="https://subslikescript.com/movie/Titanic-120338"
result=requests.get(website)
content=result.text

soup=BeautifulSoup(content,'lxml')
print(soup.prettify())

box = soup.find('article',class_='main-article')

title=box.find('h1').get_text()
transcript=box.find('div',class_='full-script').get_text(strip=True,separator=' ')

with open(f'{title}.txt', 'w')as file:
file.write(transcript)

解决步骤

  1. 编码问题根源:Windows系统默认用cp1252编码创建文本文件,该编码不支持部分Unicode特殊字符(比如错误中的\ufb02是连字"fi"的特殊变体)。
  2. 修改文件打开方式:打开文件时显式指定utf-8编码,同时修正代码缩进问题:
with open(f'{title}.txt', 'w', encoding='utf-8') as file:
    file.write(transcript)
  1. 补充说明:utf-8是通用Unicode编码,可兼容所有字符,彻底避免编码不兼容导致的写入失败;原代码中file.write(transcript)未缩进,属于语法错误,必须修正才能正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:33:25