【python笔记】requests模块基础总结

前言

菜某笔记总结,如有错误请指正。(抱歉可能我用渗透的靶场做的功能演示,让单纯想看爬虫整理的朋友不好理解,主要看一下requests库的写法吧,关于sql靶场,文件上传靶场什么的都当做网站的名字吧,下次我定改进v^v)

requests用途

主要是用于发送网络请求

Requests库的主要方法和属性

r=requests.get()

Response Request

对象 对象

r.cookies

#打印cookie

r.content

#常用于图像视频等

以上内容来自2_哔哩哔哩_bilibili

发送get请求

requests.get(url=,headers=,params=,proxies=)

  • url:请求url地址
  • headers:请求头
  • params:传递的参数
  • proxies:设置代理,需要设置http和https的字典

返回信息的打印

他会把返回的内容以字符串的形式表现出来

编码形式的转换

encoding是根据请求头里的情况判断编码类型

apparent_encoding是根据响应的内容进行判断编码的类型

因为请求头中有时候是没有写编码的类型的,这时候就会用默认的iso-8859-1

但是这个是不能编码汉语的,但是apparent的根据内容判断,会更准确。

所以当出现了编码错误的情况可以用这个方法改变编码

之后再r.text就可以了。一般常用'utf-8'编码。

状态判断

200代表成功,如果是其他的代表失败(当然不同状态码代表了不同含义)

传递参数

get型是有传参的,传参就需要用到params。

以下为我自己搭建的sql注入靶场(仅用来测试get传参)

标记处就是只有在传入参数的情况下才会显示的。

(证明我们的参数能够被传入,至于其他的统统无视,重点看代码get传参的写法)

令我没想到的是,第一次输入我写成我文件夹的位置了,结果他把我整个靶场的文件夹里里外外包括文件内容给我干出来了。。。。(嗯很强大)

定制请求头

这是原本get型数据包的样子

我们更改他的数据包就可以。。。。。。

于是这个数据包就变成了。。。。。。

嗯,干过网络渗透的都清楚这个有啥用*v*。

这个proxies是设置代理的意思,我这个用的burp抓包去抓这个数据包,一般是可以用一些模块去看发送的数据包,这里只是为了直观,结合我的burp展示。

发送post请求

与get请求差不多

语法:requests.post(url=,headers=,data=,proxies=)

data:发送的post数据

小案例

高级用法

session会话对象维持

用requests.Session方法可以实现发送的每个请求都是用的同一个cookie

代码写法:

post文件的上传

使用files参数

思路:用open的rb二进制模式打开文件,放到字典中。然后再把字典传入files的参数中。

先看用抓包软件抓取的数据包

先随便写个文件上传的数据包看一下files这个参数的对应数据包的位置吧

写出来的数据包是这个样子的

现在每个参数对应写到数据包参数中的位置都清楚了,那么我们开始吧~

上传位置为本地自己搭建的文件上传靶场(仅仅用来确认文件能够被上传)

写代码如下

写出来的post部分跟他需求一样的

可以看到上传了

文件下载

思路,就是把访问的内容写在文件中就是了

成功

啧,真俊。

获取网站cookie

相关推荐
129Lab几秒前
BMS 核心算法:SOC 估算从安时积分到 LSTM-UKF 串级融合的 30 年演进(附 Python 实现)
python·算法·lstm·python3.11·bms·soc估算
129Lab9 分钟前
电池热管理仿真的AI加速:用Python+PINN物理信息神经网络替代传统CFD的可行性探索
pytorch·python·cfd·pinn·物理信息神经网络·仿真加速·电池热管理
用户2986985301421 分钟前
Python 中 HTML 转 PDF 的实现方法
python·html·api
sunoo-22925 分钟前
【嵌入式Linux驱动学习】Day1-Day2 全流程梳理:环境搭建→U-Boot→内核→根文件系统→驱动基础
linux·运维·驱动开发·笔记·学习·阿里云·恩智浦
答案是你32 分钟前
YOLOE 开放词汇检测 + ONNX / TensorRT 推理,开源了!
python·深度学习·yolo·目标检测·计算机视觉·视觉检测
2601_9628857237 分钟前
AlphaFeed 支持哪些 K 线周期?period参数怎么传?
前端·数据库·python
老歌老听老掉牙40 分钟前
基于 Python 的顺次文本拼接:以 MCD 数控文件为例
python·数控·mcd
朝朝辞暮i42 分钟前
VLA 系统学习第 7 课:loss.backward() 到底做了什么?——从计算图到反向传播
人工智能·python·深度学习·神经网络·vla
外收内放1 小时前
Python基础语法练习题(53-54)
python·学习
聪明蛋子哟1 小时前
Python与Java双栈实战:手撸一个支持RAG与Tool Calling的高性能Agent框架
java·开发语言·python