【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

相关推荐
qianbo_insist27 分钟前
c++ python 共享内存
开发语言·c++·python
凌览1 小时前
有了 25k Star 的MediaCrawler爬虫库加持,三分钟搞定某红书、某音等平台爬取!
前端·后端·python
这里有鱼汤1 小时前
给你的DeepSeek装上实时行情,让他帮你炒股
后端·python·mcp
DKPT1 小时前
Java享元模式实现方式与应用场景分析
java·笔记·学习·设计模式·享元模式
Tomorrow'sThinker2 小时前
[特殊字符] Excel 读取收件人 + Outlook 批量发送带附件邮件 —— Python 自动化实战
python·excel·outlook
JosieBook2 小时前
【Java编程动手学】Java常用工具类
java·python·mysql
KoiHeng4 小时前
操作系统简要知识
linux·笔记
灵智工坊LingzhiAI4 小时前
人体坐姿检测系统项目教程(YOLO11+PyTorch+可视化)
人工智能·pytorch·python
巴伦是只猫5 小时前
【机器学习笔记Ⅰ】11 多项式回归
笔记·机器学习·回归
DKPT9 小时前
Java桥接模式实现方式与测试方法
java·笔记·学习·设计模式·桥接模式