我正在编写一个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笔记本电脑,顺便说一句。
答案 0 :(得分:0)
在写入文件之前尝试添加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()