您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python请求库添加了一个额外的标题“Accept-Encoding:identity”

5b51 2022/1/14 8:20:28 python 字数 3537 阅读 465 来源 www.jb51.cc/python

这是我的代码. import requests from sys import exit proxies = { "http": "127.0.0.1:8888", "https": "127.0.0.1:8888", } headers = { "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gec

概述

import requests
from sys import exit
proxies = {
    "http": "127.0.0.1:8888","https": "127.0.0.1:8888",}

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0","Accept-Encoding": "gzip,deflate","Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language": "en-US,en;q=0.5","Connection": "keep-alive"
}


login_page = "http://www.test.com/login/"
r = requests.get(login_page,proxies = proxies,headers = headers)
original_cookies = r.cookies
exit(0)

这是我从fiddler2得到的.如您所见,它添加一个额外的头文件Accept-Encoding:identity.

GET http://www.test.com/login/ HTTP/1.1
Accept-Encoding: identity
Accept: text/html,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip,deflate
Host: www.test.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0

我在Windows 7 64位上使用Python 3.3.2并请求1.2.3.

有人可以给点建议吗?

谢谢.

http.client实际上是checks,如果已经传递了headers字典中的accept-encoding,如果有,则跳过添加标识头 – 唯一的问题是作为头字典传递的内容是这样的:

CaseInsensitiveDict({b'Accept-Encoding': 'gzip,deflate,compress',...})

那么为什么它不起作用?请求encodes名称,并且在python3中,str对象与bytes对象相比总是为False,在http.client中执行的检查失败…

如果你真的想摆脱额外的标题,最快的方法是注释line 340 in requests/models.py,或者monkeypatch requests.models.PreparedRequest.prepare_headers

编辑:
这似乎是fixed(尚未发布)的2.0分支请求

总结

以上是编程之家为你收集整理的Python请求库添加了一个额外的标题“Accept-Encoding:identity”全部内容,希望文章能够帮你解决Python请求库添加了一个额外的标题“Accept-Encoding:identity”所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶