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

server/2025/3/22 7:09:12/

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.ppmy.cn/server/176983.html

相关文章

鸿蒙NEXT项目实战-百得知识库05

代码仓地址,大家记得点个star IbestKnowTeach: 百得知识库基于鸿蒙NEXT稳定版实现的一款企业级开发项目案例。 本案例涉及到多个鸿蒙相关技术知识点: 1、布局 2、配置文件 3、组件的封装和使用 4、路由的使用 5、请求响应拦截器的封装 6、位置服务 7、三…

neo4j-如何让外部设备访问wsl中的neo4j

WSL 运行在一个虚拟网络环境中,它的 IP 只能被宿主 Windows 访问,外部设备无法直接访问 WSL 的端口。你需要在 Windows 上转发端口,让外部设备可以访问 Windows 并映射到 WSL。 1. 获取 WSL 的 IP 地址 在 WSL 中运行以下命令获取其 IP 地址…

Doris性能优化建议

1、jdbc连接中添加参数rewriteBatchedStatementstrue,将 JDBC 单条插入优化为批量操作 2、将单条插入攒成批后再插入,可先使用redis的zset存储,,每3秒后取出写入表中,写入失败再写回redis的zset 3、fe.conf中添加 按照机器可用内存的10/7赋…

第二天 流程控制(if/for/while) - 列表/元组/字典操作

前言 在IT运维和系统管理领域,资源监控是至关重要的基础技能。本教程将带领Python初学者,通过编写一个实用的系统资源监控脚本,掌握Python基础语法中的流程控制、数据结构操作等核心知识。即使您完全没有编程经验,只要跟着本文一…

Go 1.24.1 编译错误:`can‘t find export data (bufio: buffer full)` 的解决之旅

一、前言 最近在用 Go 1.24.1 开发时,我遇到了一个让人头疼的编译错误。错误信息如下: # internal/runtime/math C:\Program Files\Go\src\internal\runtime\math\math.go:7:8: could not import internal/goarch (cant find export data (bufio: buff…

⭐算法OJ⭐二叉树的后序遍历【树的遍历】(C++实现)Binary Tree Postorder Traversal

⭐算法OJ⭐二叉树的中序遍历【树的遍历】(C实现)Binary Tree Inorder Traversal ⭐算法OJ⭐二叉树的前序遍历【树的遍历】(C实现)Binary Tree Preorder Traversal Given the root of a binary tree, return the postorder traver…

【商城实战(39)】Spring Boot 携手微服务,商城架构焕新篇

【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配&#xf…

HashMap扩容、红黑树转换条件(8和6的阈值) 以及 ThreadLocal内存泄漏案例

1. HashMap扩容 原理: 扩容时机:当HashMap中的元素数量超过 容量(capacity) 负载因子(load factor,默认0.75) 时,触发扩容。扩容过程:容量翻倍(从16变为32…