用特殊字符读取Python网页源代码
用特殊字符读取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日
对于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'))