用特殊字符读取Python网页源代码

12 浏览
0 Comments

用特殊字符读取Python网页源代码

我正在从网页读取页面源代码,然后从源代码中解析值。

我面临的问题是特殊字符。

在我的Python控制器文件中,我使用了# -*- coding: utf-8 -*-

但是我正在读取一个使用charset=iso-8859-1的网页源代码。

所以当我不指定任何编码方式读取页面内容时,它会抛出错误:UnicodeDecodeError: \'utf8\' codec can\'t decode byte 0xfc in position 133: invalid start byte

当我使用string.decode(\"iso-8859-1\").encode(\"utf-8\")时,它可以在没有任何错误的情况下解析数据。

但是它显示的值是 \'F\\u00fcnke\' 而不是 \'Fünke\'。

请告诉我如何解决这个问题,我将非常感激任何建议。

admin 更改状态以发布 2023年5月21日
0
0 Comments

对于Python3来说,编码确实很麻烦(在某些情况下,Python2也是如此)。
尝试查看这些链接,它们可能会对你有所帮助:

Python - 编码字符串 - 瑞典字母
Python3 - ascii/utf-8/iso-8859-1 无法解码字节0xe5(瑞典字符)

http://docs.python.org/2/library/codecs.html

此外,提供代码 "所以当我在没有指定任何编码的情况下读取页面内容时" 会很好。我最好的猜测是你的控制台没有使用UTF-8(例如,Windows操作系统)。你的# -*- coding: utf-8 -*- 只是告诉Python在源代码中查找什么类型的字符,而不是代码要解析或分析的实际数据。
例如,我写:

# -*- coding: iso-8859-1 -*-
import time
# Här skriver jag ut tiden (Translation: Here, i print out the time)
print(time.strftime('%H:%m:%s'))

0