听Ta说

  • {{ item.name }}
  • 目标网站
  • 问题
  • 安装
  • 简单使用
  • 参考
  • 首页
  • 归档

遇到http2.0的情况时,爬虫该如何去做?

  • Gorkys
  • 2022-09-15
  • 0

目标网站

aHR0cHM6Ly90aWFuaGUud2VuY2hhbmcuYmlhbmppZS5haS8jL2FkZHJlc3MvaWFhMXh1MDBjZnR3MHhxZzl4MDJkbXY1N3k4ZTN3eGp5ZTkydGdzMGRn

问题

算法解密过后请求还是报错

问:

API我用charles重放可以(Hoppscotch请求也可以),但是用requests,curl,postman都请求不通,有没有大佬指点一下可能是哪里的问题?重放的时候我把headers删的只剩auth和date了,这两个是校验的参数。都可以请求到数据,但是转成代码就不通了。丢浏览器用fetch也可以得到数据。

答:

你在requests后面加上proxy,在charles里看看发的包有什么区别

肯定是发的包有区别,不然不会响应不一样,确认下是http1.1还是http2

后面发现确实是一个http1.1(报错)和http2.0(正常)

便去了解了一下http2.0在python中可以使用httpx包

安装

如果需要使用HTTP/2,则需要安装http2的相关依赖

pip3 install httpx[http2]

简单使用

httpx与requests库的基本使用方法几乎是一模一样的,下面主要为http2的代码示例

import httpx
client = httpx.Client(http2=True, verify=False)
resJson = client.get(url, params=params, headers=headers).json()

参考

python-httpx 发送http2.0时代请求

遇到http2.0的情况时,爬虫该怎么做

© 2025 听Ta说
湘ICP备2021002328号
Theme by Wing