奇怪的编码问题使得一个特定的网站只有在查看源代码时才会出现乱码
bizzare encoding issue makes one specific website gibberish only when viewing source
我正在编写一个 python 脚本来从一些新闻网站获取文章,但我遇到了一个非常奇怪的编码问题。它是为一个以色列朋友准备的,所以网站都是希伯来语的,我的方法(使用请求和 beautifulsoup)运行良好,直到我到达这个网站,无论我做什么,它都保持乱码。
该网站是 makorishon。奇怪的是:
当我在浏览器中获取它时它不是乱码,当我在 firefox 上使用 "inspect element" 时 html 不是乱码,当我从浏览器查看源代码时它不是乱码(它也不好,它显示整个页面在两个 js 块之间的两行中),但它是当我使用 python 时,即使将 html 保存到我的计算机,然后在我的浏览器中打开保存的文件。
我已经尝试了所有可能的与希伯来语相关的编码,每一种都给我留下了一组不同的难以理解的符号。
这是正常情况下的样子:
这是 python 页面保存的样子:
这是我所知道的唯一这样做的网站,我在其他希伯来语网站上使用了相同的工具,结果很好。
我用来生成这个的代码是:
>>> import requests
>>> res = requests.get('https://www.makorrishon.co.il/')
>>> res
<Response [200]>
>>> file = open('makor1.html', 'w')
>>> file.write(res.text)
152957
>>> file.close()
这是 linux 笔记本电脑,顺便说一句。
尝试在写入文件之前添加 res.encoding = 'utf-8'
:
if __name__ == '__main__':
import requests
res = requests.get('https://www.makorrishon.co.il/')
res.encoding = 'utf-8'
file = open('makor1.html', 'wb')
file.write(res.text.encode('utf-8'))
file.close()
我正在编写一个 python 脚本来从一些新闻网站获取文章,但我遇到了一个非常奇怪的编码问题。它是为一个以色列朋友准备的,所以网站都是希伯来语的,我的方法(使用请求和 beautifulsoup)运行良好,直到我到达这个网站,无论我做什么,它都保持乱码。
该网站是 makorishon。奇怪的是:
当我在浏览器中获取它时它不是乱码,当我在 firefox 上使用 "inspect element" 时 html 不是乱码,当我从浏览器查看源代码时它不是乱码(它也不好,它显示整个页面在两个 js 块之间的两行中),但它是当我使用 python 时,即使将 html 保存到我的计算机,然后在我的浏览器中打开保存的文件。
我已经尝试了所有可能的与希伯来语相关的编码,每一种都给我留下了一组不同的难以理解的符号。
这是正常情况下的样子:
我用来生成这个的代码是:
>>> import requests
>>> res = requests.get('https://www.makorrishon.co.il/')
>>> res
<Response [200]>
>>> file = open('makor1.html', 'w')
>>> file.write(res.text)
152957
>>> file.close()
这是 linux 笔记本电脑,顺便说一句。
尝试在写入文件之前添加 res.encoding = 'utf-8'
:
if __name__ == '__main__':
import requests
res = requests.get('https://www.makorrishon.co.il/')
res.encoding = 'utf-8'
file = open('makor1.html', 'wb')
file.write(res.text.encode('utf-8'))
file.close()