如何解决python3.8 brotli brotli.error:BrotliDecompress失败?
mycode python3.8
brotli = 1.0.9
使用请求获取url,标题使用Accept-Encoding =“ br” 我需要使用解码br,因为我认为使用accept-encoding = br更好
import brotli
import requests
headers = {}
headers['Accept'] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
headers['Accept-Encoding'] = "gzip,deflate,br"
headers['Host'] = "book.douban.com"
headers['Referer'] = "book.douban.com"
headers['Sec-Fetch-Dest'] = "document"
headers['Sec-Fetch-Mode'] = "navigate"
headers['Upgrade-Insecure-Requests'] = "1"
s=requests.Session()
url="https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4"
try:
response = s.get(url,headers=headers)
except:
return ""
if response.status_code == 200:
print(response.headers)
if response.headers.get('Content-Encoding') == 'br':
data = brotli.decompress(response.content)
data1 = data.decode('utf-8')
return data1
else:
return response.text
return ""
引发错误
data = brotli.decompress(response.content)
brotli.error: BrotliDecompress failed
解决方法
requests的文档中没有提到此内容,但是一旦安装了brotli,它便由请求直接处理。
这意味着response.content将被自动解码(类似于gzip)。您不需要export PATH="$HOME/.local/bin:$PATH"
如果未安装brotli,则不会收到任何错误消息。相反,response.content将保持编码...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。