gpt4 book ai didi

Python 编码问题 : degree sign and others

转载 作者:太空宇宙 更新时间:2023-11-03 11:56:18 25 4
gpt4 key购买 nike

我正在使用 BeautifulSoup 从网页中抓取数据。我想将网站数据与 .txt 文档中的文本进行比较。但是,我似乎遇到了编码问题。

该网站有文字“heat oven to 400°”,该文字在“查看源代码”中也显示为这样(无 html 实体。)

使用 beautifulSoup 读取网站:

source = "my url".read()
....
soup = BeautifulSoup(source)

文本文档是通过制作一个编码为“不带 BOM 的 UTF-8 编码”的新文本文档创建的。然后,我将网站上的“ toastr 加热到 400°”复制粘贴到文本文档中并保存。

文本文件被读取为

f = codecs.open('myfilename', encoding='utf-8')

当我比较两个字符串时,它们不相等,但我希望它们相等。

查看发生了什么:在 Eclipse 中,我拆分了两个文本,并在 Debug模式下查看变量,我看到 BeautifulSoup 的度数符号显示为\xc2\xb0。文本文档中的度数符号显示为\xb0。

为什么,我该如何解决?我遇到了很多特殊字符的问题,所以我需要一个通用的解决方案。此外,我将从多个站点复制粘贴数据到文本文档中。

最佳答案

看起来 Beautiful Soup 没有正确检测编码所需的内容。您可以通过将 BeautifulSoup(source) 替换为 BeautifulSoup(source, fromEncoding='UTF-8') 来给出提示。更多选项和信息可在线访问“Beautiful Soup Gives You Unicode, Dammit”。

字节 '\xc2\xb0' 是当 Unicode 代码点 U+00B0 的 UTF-8 编码被误认为是 Beautiful Soup 对编码的最后猜测,即 Windows 1252 时得到的字节。

关于Python 编码问题 : degree sign and others,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9059791/

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