爬虫工具|输入浏览器header内容字符串,自动格式化为字典类型

背景

一般我们进行网络资源的爬取操作时,通常需要把浏览器中的request header的内容复制出来,放在脚本中进行操作。

通常我们是手动在每个key和value的两边都加上'',但是这种方法比较麻烦,且比较耗时,以下为输入一段浏览器header内容字符串,自动格式化为字典类型的方法。

代码实现

def get_headers(input_headers_string):
    '''
    自动格式化爬虫浏览器请求头参数,输入一个从浏览器中复制过来的请求头,自动转换为字典格式内容,一键粘贴为headers即可
    
    :param input_headers_string:str,从浏览器中复制过来的请求头,例如:    headers = """
    Host: zhan.qq.com
    Proxy-Connection: keep-alive
    Content-Length: 799432
    Pragma: no-cache
    Cache-Control: no-cache
    """
    
    :return:
    '''
    # 使用三引号将浏览器复制出来的requests headers参数赋值给一个变量
    headers =str(input_headers_string)
    # 去除参数头尾的空格并按换行符分割
    headers = headers.strip().split('\n')
    
    # 使用字典生成式将参数切片重组,并去掉空格,处理带协议头中的://
    headers = {x.split(':')[0].strip(): ("".join(x.split(':')[1:])).strip().replace('//', "://") for x in headers}
    
    # 使用json模块将字典转化成json格式打印出来
    return_headers=json.dumps(headers, indent=1)
    print('headers={}'.format(return_headers))
    
    return

代码调用

if __name__ == '__main__':
    headers = """
accept-encoding: gzip, deflate, br
accept-language: zh-CN,zh;q=0.9
content-length: 14
content-type: application/x-www-form-urlencoded; charset=UTF-8
origin: https://www.2ppt.com
referer: https://www.2ppt.com/so/1.html
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-origin
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36
x-requested-with: XMLHttpRequest
    """
    get_headers(headers)

运行结果

headers={
 "accept-encoding": "gzip, deflate, br",
 "accept-language": "zh-CN,zh;q=0.9",
 "content-length": "14",
 "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
 "origin": "https://www.2ppt.com",
 "referer": "https://www.2ppt.com/so/1.html",
 "sec-ch-ua": "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"96\", \"Google Chrome\";v=\"96\"",
 "sec-ch-ua-mobile": "?0",
 "sec-ch-ua-platform": "\"Windows\"",
 "sec-fetch-dest": "empty",
 "sec-fetch-mode": "cors",
 "sec-fetch-site": "same-origin",
 "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36",
 "x-requested-with": "XMLHttpRequest"
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

《代码爱好者》

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值