Splash添加headers报错:'headers' must be either a JSON array of (name, value) pairs or a JSON object

痛定思痛。 2023-07-25 14:11 91阅读 0赞

背景

最近在测试爬虫的Splash方案,虽然已经实现了Selenium版方案,但是觉得配环境比较麻烦不适合分布式的场景,然后发现Splash是服务的形式提供一个接口访问,形式上类似走一层代理,对原有代码改动少,所以就开始测试过程,加代理已经实现,但是加headers时报错。

报错请求

请求render.html接口
请求方式:GET

  1. URL="http://127.0.0.1:8050/render.html?url=https://httpbin.org/get&headers=[['User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0']]"
  2. header={ 'Content-Type': 'application/json'}

报错内容

在这里插入图片描述

解决方法

  • 直到我仔细查看官方文档才发现headers参数只适用于post请求
    在这里插入图片描述

成功请求

请求render.html接口
请求方式:POST

  1. URL='http://127.0.0.1:8050/render.html'
  2. header={ 'Content-Type': 'application/json'}
  3. data={ "url":'https://httpbin.org/get','headers':[['User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0']]}

注意:需要对data进行json转换(使用json.dumps(data))

在这里插入图片描述
我的个人博客网站是:www.coderyyn.cn
上面会不定期分享有关爬虫、算法、环境搭建以及有趣的帖子
欢迎大家一起交流学习

转载请注明

发表评论

表情:
评论列表 (有 0 条评论,91人围观)

还没有评论,来说两句吧...

相关阅读