gpt4 book ai didi

Python 网站抓取工具 UnicodeEncodeError

转载 作者:行者123 更新时间:2023-12-01 04:32:26 28 4
gpt4 key购买 nike

我正在使用 Requests 和 BeautifulSoup 以及 Python 3.4 从网站上抓取可能包含也可能不包含日语或其他特殊字符的信息。

def startThisPage(url):
r = requests.get(str(url))
r.encoding="utf8"
print(r.content.decode('utf8'))
soup = BeautifulSoup(r.content,'html.parser')
print(soup.h2.string)

h2 包含以下内容:“Fate/kaleid liner Prisma ☆ Ilya Zwei!”我很确定现在给我带来麻烦的是明星。

向我抛出的错误代码:

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

该页面是使用 utf8 编码的,因此我尝试使用 utf8 编码和解码我通过 r.content 接收到的字节字符串。我还尝试首先使用 unicode_escape 进行解码,认为这是因为 double\但事实并非如此。有任何想法吗?

最佳答案

soup.h2.string 是一个 Unicode 字符串。控制台字符编码(例如 cp437)无法表示导致错误的某些 Unicode 字符 (☆ -- U+2606 WHITE STAR )。要解决此问题,请参阅 my answer to "Python, Unicode, and the Windows console" question .

I still get the same error trying to write to a file..

文件(使用open()创建)默认使用locale.getpreferredencoding(False),例如cp1252。请改用支持完整 Unicode 范围的显式字符编码:

import io

with io.open('title.txt', 'w', encoding='utf-8') as file:
file.write(soup.h2.string)

关于Python 网站抓取工具 UnicodeEncodeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32192705/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com