当前位置: 首页 > article >正文

第四周日志-用网络请求理解bp(2)

python网络请求库实现数据抓取、API调用还是后端服务的交互

以urllib3库为例

请求:

import urllib3
http = urllib3.PoolManager()   # 创建连接池管理对象

url1=""
r1 = http.request('GET',url1)    #request
print(r1.status)                

 request()

request(method, url, fields=None, headers=None, urlopen_kw)

其实跟bp顺序(格式)一样 

参数和头我只见过两种传法,要么直接传一个没有逗号的参数,要么{"键":"值","键":"值"}

params = {'name':'Jack','country':'中国','age':30}
r = http.request('POST',url,fields=params)
print('返回结果:',r.data.decode('utf-8'))

关闭警告:urllib3.disable_warnings()

参数retires控制request重试次数

收:

response_header = r.info()               # 获取响应头
for key in response_header.keys():      # 循环遍历打印响应头信息
    print(key,':',response_header.get(key))
import urllib3    # 导入urllib3模块
import json       # 导入json模块
#......
r = http.request('POST',url,fields=params)    # 发送POST请求

j = json.loads(r.data.decode('unicode_escape'))  # 将响应数据转换为字典类型
print('数据类型:',type(j))
print('获取form对应的数据:',j.get('form'))
print('获取country对应的数据:',j.get('form').get('country'))
r = http.request('GET',url)              # 发送网络请求
print(r.data)                            # 打印二进制数据
f = open('python.png','wb+')             # 创建open对象
f.write(r.data)                          # 写入数据
f.close()                                # 关闭

发:

文件上传

import urllib3    
with open(1.jpg','rb') as f:
  data = f.read()                    # 读取文件
http = urllib3.PoolManager()    # 创建连接池管理对象

r = http.request('POST','目标url',body = data,headers={'Content-Type':'image/jpeg'})
print(r.data.decode())
import urllib3    # 导入urllib3模块
import json       # 导入json模块
with open('test.txt') as f:    # 打开文本文件
  data = f.read()               # 读取文件
http = urllib3.PoolManager()    # 创建连接池管理对象
# 发送网络请求
r = http.request( 'POST','http://httpbin.org/post',fields={'filefield': ('example.txt', data),})
files = json.loads(r.data.decode('utf-8'))['files']  # 获取上传文件内容
print(files)                                         # 打印上传文本信息

控制超时:

全局设置:在 PoolManager 对象初始化时指定 timeout。
单次请求设置:在 request() 方法中直接传递 timeout。
精确控制:使用 Timeout 类分别设置连接超时和读取超时。

 re还在试着动调

【Windows 逆向】OD 调试器工具 ( 分析 OD 硬件断点处的关键代码 | 添加硬件断点 | 关键代码 | MOV 指令 | EAX 寄存器值分析 | 使用命令查看 esi+0cc 地址 )_od debug 分析空白-CSDN博客


http://www.kler.cn/a/594575.html

相关文章:

  • React如何导入md5,把密码password进行md5加密
  • LeetCode hot 100—只出现一次的数字
  • 目标检测YOLO实战应用案例100讲-面向交通复杂目标场景的机器视觉检测技术研究(续)
  • 初识Brainstorm(matlab)
  • 2025年汽车加气站操作工考试精选题库
  • 数据库的两种模式
  • L1-005-008
  • 掌握 Shopee 商品数据:用爬虫解锁无限商机
  • 鸿蒙NEXT开发之开屏广告实现
  • 力扣hot100——三数之和(双指针)
  • SVN 泄露
  • 从模拟到现实:Sensodrive高精度力反馈技术赋能物流运输的高效与安全
  • 【OCR】使用Umi-OCR进行PDF文档的光学字符识别
  • 视频推拉流EasyDSS点播平台云端录像播放异常的问题排查与解决
  • Git 使用笔记
  • Redis常用数据类型深度解析:从理论到最佳实践
  • 宇树科技纯技能要求总结
  • 群体智能优化算法-牛顿-拉夫逊优化算法(Newton-Raphson-Based Optimizer, NRBO,含Matlab源代码)
  • 企业数字化20项目规划建设方案微服务场景与数据应用(50页PPT)(文末有下载方式)
  • 图解AUTOSAR_CP_SOMEIP_TransportProtocol