Python 某些字符无法解码,已替换为替换字符

Python 某些字符无法解码,已替换为替换字符,python,html,web-scraping,decoding,Python,Html,Web Scraping,Decoding,我已经用Python编写了大约3个月了,我正在尝试从类“”为类项目进行一些web扫描。然而,当我试图拉网站的html我得到的错误,“一些字符无法解码,并被替换字符替换。” 我尝试过几种不同类型的解码,但没有成功。下面是我正在使用的代码。任何帮助都将不胜感激 代码: html输出结果如下所示: �}�WI���s����Y��-H��`�M���6.����� 5.�J�Řf����ȭJ%!��R���反恐组�DFFDƖ�����?Y�� ����۾W,��9����� ��y7����5ju��

我已经用Python编写了大约3个月了,我正在尝试从类“”为类项目进行一些web扫描。然而,当我试图拉网站的html我得到的错误,“一些字符无法解码,并被替换字符替换。” 我尝试过几种不同类型的解码,但没有成功。下面是我正在使用的代码。任何帮助都将不胜感激

代码:

html输出结果如下所示:

�}�WI���s����Y��-H��`�M���6.����� 5.�J�Řf����ȭJ%!��R���反恐组�DFFDƖ�����?Y�� ����۾W,��9����� ��y7����5ju���N���{�

数据的字节版本如下所示:

\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\xec}\xf9W\x1bI\xb2\xee\xefs\xce\xfb\x1f\xca\xeay\x83\xfd\x0

该站点正在使用gzip传输编码,而您的http客户端不会对其进行解码

>> from urllib import request
>>> import gzip
>>> res = request.urlopen(url)
>>> content = res.read()
>>> content[:25]
b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\xec}\xf9W\x1bI\xb2\xee\xefs\xce\xfb\x1f\xca\xea'

>>> print(res.headers)
...
Content-Encoding: gzip
Content-Language: en
Content-Type: text/html; charset=utf-8
...
>>> decompressed = gzip.decompress(content)
>>> decompressed[:25]
b'<!DOCTYPE html>\n<!--[if l'
来自urllib导入请求的
>
>>>导入gzip
>>>res=request.urlopen(url)
>>>content=res.read()
>>>内容[:25]
b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\xec}\xf9W\x1bI\xb2\xee\xefs\xce\xfb\x1f\xca\xea'
>>>打印(res.headers)
...
内容编码:gzip
内容语言:英语
内容类型:text/html;字符集=utf-8
...
>>>解压缩=gzip。解压缩(内容)
>>>解压缩[:25]

b'\n我无法重现您的错误,但这里有一个使用请求包的工作版本:

import requests
from bs4 import BeautifulSoup as bs

url = "https://www.countyhealthrankings.org/app/alabama/2019/rankings/outcomes/"

r = requests.get(url)

soup = bs(r.content)

print(soup)

你们太棒了。我没想到这么快就能找到解决办法。谢谢只是一个快速更新。我能够通过使用selenium和lmxl解析html站点来解决我的问题。
>>> import requests
>>> r = requests.get(url)
>>> r.text[:25]
'<!DOCTYPE html>\n<!--[if l'
import requests
from bs4 import BeautifulSoup as bs

url = "https://www.countyhealthrankings.org/app/alabama/2019/rankings/outcomes/"

r = requests.get(url)

soup = bs(r.content)

print(soup)