python requests爬虫返回403错误?加了所有特征的请求头+代理也解决不了的问题处理

这篇具有很好参考价值的文章主要介绍了python requests爬虫返回403错误?加了所有特征的请求头+代理也解决不了的问题处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、问题分析

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

【解疑】:其实遇到这种情况大概率是遇到了“原生模拟浏览器 TLS/JA3 指纹的验证”,浏览器和postman都有自带指纹验证,而唯独requests库没有。这就让反爬有了区分人为和爬虫的突破口。文章来源地址https://www.toymoban.com/news/detail-606665.html

二、问题解决

1、使用 pyhttpx 库(推荐)

1.1、安装

pip install pyhttpx

1.2、代码示例

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 库(用得少)

2.1、安装

pip install curl_cffi

2.2、代码示例

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

3、使用httpx库(极力推荐)

3.1、安装

pip install httpx

3.2、代码示例

import httpx

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",
}

res = httpx.get(url='https://www.baidu.com/', headers=headers, timeout=10, verify=False)
print(res.text)

到了这里,关于python requests爬虫返回403错误?加了所有特征的请求头+代理也解决不了的问题处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【解决问题】413错误 413 Request Entity Too Large 接口返回413 报413nginx

    博客背景:JAVA项目,前端想弄个便捷富文本,直接很多图片转base64编码直接存库了。字段为longtext类型。 这种问题通常是在使用http请求对象太大的时候。。 1、如果是超长的话varchar类型改成longtext类型。 2、依旧怀疑超长的话,搜了一下longtext的最大长度 mysql里3种text类型的最

    2024年02月07日
    浏览(50)
  • 上传oss文件是出现 Unable to execute HTTP request: 返回结果无效,无法解析 错误解决办法

    项目中上传图片的时候有了一下错误: 那么这个错误我百度了一下这个错误 那个如果是关于OSS的错误,找不到的话可以查看一下阿里云OSS的官方文档查找一下 阿里云OSS文档      查看这些解决方案。我看这个发现我的都没问题,然后最后发现这个项目是我直接拉下来直接用

    2024年02月12日
    浏览(50)
  • 特征点匹配返回匹配坐标点python

     

    2024年02月14日
    浏览(29)
  • python-网络爬虫.Request

    Request python中requests库使用方法详解: 一简介:         Requests 是Python语言编写,基于urllib,         采用Apache2 Licensed开源协议的 HTTP 库。         与urllib相比,Requests更加方便,处理URL资源特别流畅。         可以节约我们大量的工作,建议爬虫使用Requests库

    2024年02月14日
    浏览(53)
  • python爬虫—requests

    类型 : models.Response r.text : 获取网站源码 r.encoding :访问或定制编码方式 r.url :获取请求的 url r.content :响应的字节类型 r.status_code :响应的状态码 r.headers :响应的头信息 找登录接口  找参数的值 python代码 登录超级鹰官网:超级鹰验证码识别-专业的验证码云端识别服务

    2024年02月10日
    浏览(41)
  • 【Python爬虫】requests库

    1.requests库的介绍 ​ requests 是 Python 语言编写,基于 urllib3 ,采用 Apache2 Licensed 开源协议的HTTP库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。是 Python 实现的简单易用的 HTTP 库。 Requests 中文文档:http://docs.pythonrequests.org/zh_CN/latest/index.html ​ 解决

    2024年02月16日
    浏览(41)
  • 【python爬虫】设计自己的爬虫 1. request封装

    通过requests.session().request 封装request方法 考虑到请求HTTP/2.0 同时封装httpx 来处理HTTP/2.0的请求 通过is_http2来区分 测试代码如下

    2024年02月08日
    浏览(56)
  • python爬虫----selenium特征去除

    文件下载:https://download.csdn.net/download/Natalie_Lv/86723031

    2024年02月15日
    浏览(33)
  • Python爬虫之requests模块

    requests文档http://docs.python-requests.org/zh_CN/latest/index.html 1、requests模块的作用: 发送http请求,获取响应数据 2、requests模块是一个第三方模块,需要在你的python(虚拟)环境中额外安装 pip/pip3 install requests 3、requests模块发送get请求 需求:通过requests向百度首页发送请求,获取该页面

    2024年02月09日
    浏览(44)
  • python爬虫——request模块讲解,Python详解

    对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); 而对于POST, 浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。 (二)http常见请求参数 url:请求url地址 headers:请求头 **data:发送编码为表

    2024年04月26日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包