python爬虫返回403错误?加了请求头+代理也解决不了 >>看这 您所在的位置:网站首页 网站请求打开app怎么修改不了 python爬虫返回403错误?加了请求头+代理也解决不了 >>看这

python爬虫返回403错误?加了请求头+代理也解决不了 >>看这

2023-10-15 01:59| 来源: 网络整理| 查看: 265

一、问题分析

【疑惑】:使用python的requests库发起get或post请求返回403代码错误,使用postman发起请求发现状态码竟然成功了。这是什么原因?首先排除ip问题,ip有问题的话postman也访问不了。难道是headers出现了问题吗,通过对比发现也不是headers的问题。那就奇了怪了?

【解疑】:其实遇到这种情况大概率是遇到了“原生模拟浏览器 TLS/JA3 指纹的验证”,浏览器和postman都有自带指纹验证,而唯独requests库没有。这就让反爬有了区分人为和爬虫的突破口。

二、问题解决

1、使用 pyhttpx 库(速度慢)

pip install pyhttpx==2.10.0

import pyhttpx headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36", } session = pyhttpx.HttpSession() # 注意:使用多线程时,这个设置成局部变量 res = session.get(url='https://www.baidu.com/',headers=headers) print(res.text)

2、使用 curl_cffi 库(速度快)

pip install curl_cffi==0.2.4

from curl_cffi import requests res = requests.get(url='https://www.baidu.com/',impersonate="chrome101") print(res.text)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有