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

第四周日志-用网络请求理解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博客

相关文章:

  • 华为OD机试-会议室占用时间段(Java 2024 C卷 100分)
  • Rust语言学习
  • 体育直播视频源格式解析:M3U8 vs FLV
  • mysql中find_in_set()函数用法详解及增强函数
  • mysql-DELETE、DROP 和 TRUNCATE区别
  • deepSpeed多机多卡训练服务器之间,和服务器内两个GPU是怎么通信
  • Linux 系统性能优化高级全流程指南
  • 免费开源的NAS解决方案:TrueNAS
  • 工厂方法模式、简单工厂模式与抽象工厂模式的对比
  • 正则表达式:文本处理的瑞士军刀
  • 如何在云端平台上建立 30,000 名用户的网页 MMO游戏环境-2 (服务器)
  • 【工业现场总线】控制网络的主要特点是?OSI参考模型的分层是?
  • `chromadb` 是什么
  • hive 数据简介
  • C++通过宏将任何内容转成字符串的方式
  • Git的基本使用
  • linux 添加自定义文件类型,自定义文件图标,自定义类型默认打开应用 启动菜单
  • 强化学习(赵世钰版)-学习笔记(完)(10.Actor-Critic方法)
  • 玩转物联网-4G模块如何快速将数据上传到巴法云(TCP篇)
  • ASP.NET会话攻防战:彻底歼灭会话固定漏洞的六层防御体系
  • 网络主播直播泄机密,别让这些“小事”成威胁国家安全的“突破口”
  • 本科生已发14篇SCI论文被指由其教授父亲挂名,重庆大学成立工作组核实
  • 范志毅跨界归来做青训,探索中国足球人才培养新模式
  • 外卖员投资失败负疚离家流浪,经民警劝回后泣不成声给父母下跪
  • 定位真核生物起源于约27.2亿年前,华东师大团队在《自然》发文
  • 太原一高中生指出博物馆多件藏品标识不当,馆方已邀请他和专家共同探讨