Python requests有问题

1问题1

今天使用脚本爬取某网站的接口,发现使用nodejs、postman和chrome可以正确获取数据,使用Python requests却返回405,没办法,只能使用nodejs和popen,通过nodejs的https模块获取接口数据以后,使用popen返回给python进程.

2问题2

没有过多久就发现那个网站的接口有反爬机制,短时间频繁调用直接会把ip给封了,无论是Python requests、nodejs的https模块、chrome浏览器、postman全都不行,再调用就是403的错误页面,通过切换多个wifi和手机热点证实了这一点。于是找到了一家提供隧道代理IP的云计算平台,购买了隧道代理IP服务,在这个平台上下载了python语言的示例代码,更换了我的账号和密钥,以及隧道地址和端口以后,发现不行,示例代码里就是用的Python requests。起初我还以为是我用的不对,结果按照平台上测试代理可用性的方法,使用Proxifier访问没问题,就是Python requests有问题,于是联系了平台人工客服,结果人工客服告诉我使用chrome浏览器和curl命令测试是可以正常访问的。于是我在本地试了一下curl,确实可以,但是不知道为什么Python requests不行,连人工客服都不知道。没有办法了,只能使用popen了。

3问题3

Python requests却返回405的原因

使用nodejs https,发送的请求的头部是:

复制代码
GET /qjwzwb/stuchooseexam/showPositionInfo.htm?zwdm=3B72E1E17B84508D7FFAFE00295262636CE478D1E3703C19&examid=5083fd4b2a75e4d1 HTTP/1.1
Host: aaa.bbb.cn
Connection: close

响应头部:

复制代码
 {
  date: 'Wed, 08 Nov 2023 03:27:30 GMT',
  'content-type': 'text/html;charset=UTF-8',
  'content-length': '7833',
  connection: 'close',
  'set-cookie': [
    'JSESSIONID=31468102EC0D977F69F330CB4FCAE2C9; Path=/qjwzwb; HttpOnly',
    'SERVERID=c6cf1a7149f02bca0f6c4700b9f1a7ec|1699414050|1699414050;Path=/'
  ],
  'content-language': 'en-US',
  vary: 'accept-encoding'
}

使用Python requests发送的请求的头部是:

复制代码
{
    'User-Agent': 'python-requests/2.23.0', 
    'Accept-Encoding': 'gzip, deflate', 
    'Accept': '*/*', 
    'Connection': 'keep-alive'
}

响应头部是:

复制代码
{
    'Date': 'Wed, 08 Nov 2023 02:29:44 GMT', 
    'Content-Type': 'text/html', 
    'Content-Length': '64367', 
    'Connection': 'keep-alive', 
    'ETag': '"61966732-fb3c"'
}

将Python requests的头部设置为:

复制代码
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
}

响应的状态码就是200了

4问题4

Python requests使用代理还是405的原因

经过验证,将Python requests的头部设置为:

复制代码
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
}

响应的状态码就是200了

相关推荐
灵智工坊LingzhiAI25 分钟前
人体坐姿检测系统项目教程(YOLO11+PyTorch+可视化)
人工智能·pytorch·python
weixin_472339464 小时前
高效处理大体积Excel文件的Java技术方案解析
java·开发语言·excel
枯萎穿心攻击4 小时前
响应式编程入门教程第二节:构建 ObservableProperty<T> — 封装 ReactiveProperty 的高级用法
开发语言·unity·c#·游戏引擎
Eiceblue6 小时前
【免费.NET方案】CSV到PDF与DataTable的快速转换
开发语言·pdf·c#·.net
m0_555762906 小时前
Matlab 频谱分析 (Spectral Analysis)
开发语言·matlab
浪裡遊7 小时前
React Hooks全面解析:从基础到高级的实用指南
开发语言·前端·javascript·react.js·node.js·ecmascript·php
烛阴8 小时前
简单入门Python装饰器
前端·python
lzb_kkk8 小时前
【C++】C++四种类型转换操作符详解
开发语言·c++·windows·1024程序员节
好开心啊没烦恼8 小时前
Python 数据分析:numpy,说人话,说说数组维度。听故事学知识点怎么这么容易?
开发语言·人工智能·python·数据挖掘·数据分析·numpy
面朝大海,春不暖,花不开9 小时前
使用 Python 实现 ETL 流程:从文本文件提取到数据处理的全面指南
python·etl·原型模式