fastjson 大写转小写 字段_scrapy中headers的key使用小写

背景

在对接一些外部 API 时,有时会遇到要求 Request Headers 中的某个字段,key 值必须是小写才能正常调用,而在 scrapy 中,默认所有 headers 的 key 都类似b'User-Agent'这种形式,我希望对代码进行少量改动达到正常调用此类接口的目的。

解决方案(分析过程在后面)

在 scrapy 项目中添加以下代码:

from twisted.web.http_headers import Headers as TwistedHeaders

TwistedHeaders._caseMappings.update({
    
    # b'headers对应key的小写': b'期望结果的小写'
    b'accept-language': b'accept-language',
    b'user-agent': b'user-agent',
    b'content-type': b'content-type',
    # ...继续添加你想要映射的字段...
})

注意:1. 对于添加代码的位置,网上有些文章说需要在import scrapy之前或Spider类之前,实际上只要你喜欢,你可以在项目中的settings.py/middlewares.py/pipelines.py/spider文件等任意 python 文件中的任意位置添加,一般我们放在文件顶部即可。2. 查看最终效果需要在抓包工具中查看。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值