Python requests.Session.get如何将Firefox复制的Headers转为字典
把浏览器复制的请求头转成requests可用的字典
嘿,这个问题我可太熟了!每次爬取数据复制完请求头都得转成字典,其实方法超简单,给你分享几种实用的方式:
1. 手动转换(适合少量请求头)
浏览器复制的每一行都是键: 值的格式,我们只需要把它们改成Python字典的键值对就行:
- 把冒号前的内容作为字典的键,冒号后的作为值,记得去掉前后的空格
- 用双引号把键和值都包起来,每对之间用逗号分隔,最后放在大括号里
拿你复制的请求头举例,转换后就是这样:
headers = { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "en-US,en;q=0.5", "Connection": "keep-alive", "Host": "cdn.sstatic.net", "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0" }
之后直接把这个字典传给session.get()的headers参数就行:
import requests session = requests.Session() # 替换成你要请求的实际URL response = session.get("https://cdn.sstatic.net", headers=headers)
2. 用脚本自动转换(适合大量请求头)
如果请求头很多,手动敲太麻烦,写个小脚本一键转换:
# 把从浏览器复制的请求头直接粘到这里的字符串里 raw_headers = """Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.5 Connection: keep-alive Host: cdn.sstatic.net User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0""" headers = {} for line in raw_headers.splitlines(): if line.strip(): # 跳过可能存在的空行 # 只分割一次,避免值里有冒号导致出错 key, value = line.split(":", 1) headers[key.strip()] = value.strip() # 打印转换后的字典,直接复制用就行 print(headers)
运行这个脚本,控制台输出的就是现成的字典,直接复制到你的代码里就好。
小提醒
- 如果需要模拟完整会话,别忘了把
Cookie请求头也一起复制转换进去(如果浏览器里有的话) - requests对请求头的键名大小写不严格,但尽量和原请求保持一致,避免一些网站的反爬校验
内容的提问来源于stack exchange,提问作者Nesa
相关产品推荐
相关产品推荐

