我试图从一个网页中提取内容,使用请求和美丽的汤。
当使用请求检索页面内容时,我遇到了一个相当奇怪的问题。正如您在屏幕截图(original page)中看到的,Â字符似乎是随机插入的(我突出显示了它们以使其更清楚)。
http - “”字符已添加到HTML响应中-LMLPHP
示例代码:

from bs4 import BeautifulSoup
import requests

url = 'https://technet.microsoft.com/en-us/sysinternals/bb963902'
r = requests.get(url=url)

with open('/Users/xxxx/test.html', 'wb') as f:
    f.write(r.content)

起初,我认为这与编码不是utf-8有关,但这似乎是可以的:
r.encoding
>> 'utf-8'

我试过用curl(curl 7.37.1 (x86_64-apple-darwin14.0) libcurl/7.37.1 SecureTransport zlib/1.2.5)检索相同的页面,结果中也出现了相同的问题。

最佳答案

你收到的文件是正确的。由于HTML文件缺少字符集信息,浏览器在您查看下载的文件时会检测到错误的编码(西部而不是Unicode)。
由于服务器在内容类型头中发送字符集信息,因此当您联机浏览时,它会正确呈现。

关于http - “”字符已添加到HTML响应中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31698933/

10-14 08:51
查看更多