【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

相关推荐
吃面不喝汤661 小时前
Flask + Swagger 完整指南:从安装到配置和注释
后端·python·flask
开MINI的工科男5 小时前
【笔记】自动驾驶预测与决策规划_Part3_路径与轨迹规划
人工智能·笔记·自动驾驶·预测与决策
AI原吾5 小时前
掌握Python-uinput:打造你的输入设备控制大师
开发语言·python·apython-uinput
毕设木哥5 小时前
25届计算机专业毕设选题推荐-基于python的二手电子设备交易平台【源码+文档+讲解】
开发语言·python·计算机·django·毕业设计·课程设计·毕设
weixin_455446175 小时前
Python学习的主要知识框架
开发语言·python·学习
D11_6 小时前
Pandas缺失值处理
python·机器学习·数据分析·numpy·pandas
花生了什么树~.6 小时前
python基础知识(四)--if语句,for\while循环
python
IT毕设梦工厂7 小时前
计算机毕业设计选题推荐-在线拍卖系统-Java/Python项目实战
java·spring boot·python·django·毕业设计·源码·课程设计
luthane8 小时前
python 实现average mean平均数算法
开发语言·python·算法
码农研究僧8 小时前
Flask 实现用户登录功能的完整示例:前端与后端整合(附Demo)
python·flask·用户登录