我使用python请求捕获网站的http标头。例如,这是一个响应头:
{'Connection':'keep-alive', 'Access-Control-Allow-Origin':'*','cache-control':'max-age = 600', 'Content-Type':'text / html; charset = utf-8',“到期时间”:“星期五,4月19日 2019 03:16:28 GMT'','Via':'1.1清漆,1.1清漆','X-ESI':'开', 'Verso':'false','Accept-Ranges':'none','Date':'Fri,19 Apr 2019 03:11:12 GMT”,“年龄”:“ 283”,“ Set-Cookie”: 'CN_xid = 08f66bff-4001-4173-b4e2-71ac31bb58d7;过期时间= 2019年10月16日,星期三 格林尼治标准时间03:11:12; path = / ;, xid1 = 1; Expires = Fri,19 Apr 2019 03:11:27 GMT; path = / ;, verso_bucket = 281; Expires = Sat,18 Apr 2020 03:11:12 GMT; path = /;','X-Served-By':'cache-iad2133-IAD,cache-gru17122-GRU', 'X-Cache':'HIT,MISS','X-Cache-Hits':'1,0','X-Timer': 'S1555643472.999490,VS0,VE302','内容-安全-政策': “ default-src https:数据:'unsafe-inline''unsafe-eval'; child-src https:数据:blob :; connect-src https:数据:blob :; font-src https: 数据:; img-src https:数据:blob :; media-src https:数据:blob :; object-src https :; script-src https:数据:blob:'unsafe-inline' '不安全评估'; style-src https:'unsafe-inline'; 阻止所有混合内容;升级不安全的请求;报告uri https://l.com/csp/gq”, 'X-Fastly-Device-Detect':'desktop','Strict-Transport-Security': 'max-age = 7776000; preload”,“ Vary”:“ Accept-Encoding,Verso, 接受编码”,“内容编码”:“ gzip”,“传输编码”: 'chunked'}
我注意到从测试的几个示例中,我从requests
接收到的标头的格式为'key':'value'
(请注意,键和值周围的单个冒号)。但是,当我从Firefox-> Web开发人员-> Inspector中检查标题,并选择以原始格式查看标题时,看不到逗号:
HTTP / 2.0 200 OK日期:2019年5月9日星期四18:49:07 GMT过期:-1 缓存控制:私有,最大年龄= 0内容类型:text / html; charset = UTF-8严格传输安全性:max-age = 31536000 内容编码:br服务器:gws内容长度:55844 x-xss-保护:0 x-frame-options:SAMEORIGIN set-cookie: 1P_JAR = 2019-05-09-18; expires =星期六,2019年6月8日18:49:07 GMT;路径= /; domain = .google.com alt-svc:quic =“:443”; ma = 2592000; v =“ 46,44,43,39” X-Firefox-Spdy:h2
我需要知道:python的requests
模块是否总是添加单个冒号?这对我很重要,因为我需要在用于分析标头的正则表达式中包括/排除它们。
答案 0 :(得分:0)
我认为您遇到的问题是请求以dict
的形式返回,而不是firefox检查器给您的值。执行此操作时,如果其中一个值对具有数字或布尔值,则可能会得到混合结果,因此在进行正则表达式时,如果可以删除外部撇号或仅使用给定值,则可能需要使用“尝试/例外”。
答案 1 :(得分:0)
添加冒号的不是请求模块。 Request将标头表示为dict,但您似乎将它们视为字符串。当Python将字典转换为字符串时,它们会得到冒号,逗号和引号。
正确的解决方案是将字典视为字典,而不是将其转换为字符串。但是,如果您确实想要字符串形式的标题,则应考虑使用其他工具,例如curl。