作者:小刚
一位苦于信息安全的萌新小白帽,记得关注给个赞,谢谢
本实验仅用于信息防御教学,切勿用于其它用途



requests库的简单用法


简单介绍

requests是一个用于发送http/https请求的库,但一切核心是来自于urllib3库,相对于其他发送网络请求包的库,我感觉这个使用更加简单明了。

这次主要记录一下requests的最基础的使用方法。

中文手册网址:​​https://requests.readthedocs.io/zh_CN/latest/​

基础用法
import requests #导入库
url = 'https://www.baidu.com' #要请求的网址
payload = {} #请求的数据
headers = {
'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
} #请求头信息

response = requests.get(url,headers=headers,data=payload) # 发送请求包,返回内容存入response

print(response.text) #打印响应包内容

我用我的思维大体估摸了一下这串代码,总共可以分为三个部分

设置请求数据,发送请求包,输出响应内容

请求数据

​url = 'https://www.baidu,com' #请求的网址​​记得别忘了https://

​params = {'id'='123',uid='456'}​​请求参数设置,主要是GET请求参数

​payload = {'username'='xg','passwd'='123456'}​​ 要发送的数据内容,POST数据内容

​headers = {'User-Agent'='xxxxxxxxxx', 'Cookie'='xxxxxxxxxxx', 'X-Forwarded-For'='127.0.0.1'}​​设置请求头信息

​proxies = { "http":"http://127.0.0.1:8080", "https":"https://127.0.0.0:8081" }​​设置代理地址,跑burp时候能用上

发送请求

有两种发送请求方式

​resopnse = requests.get(url,headers=headers)​

​response = requests.request('GET',url,headers=headers)​

这两种发送请求方式一样,支持GET,POST,PUT,DELETE,HEAD 以及 OPTIONS 的请求方法。

再次要介绍的是括号里面的请求参数设置

​'GET'​​就是要设置的请求方式

​url​​请求的网站url

​headers=xxx​​设置请求头

​params=xxx​​接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()

​data=xxx​​设置请求数据,post的数据

​allow_redirects=False​​禁用重定向处理

​timeout=0.001​​设置响应时间,以免超时浪费时间

​proxies = xxxx​​设置代理地址

​verify=True​​检查某个主机的ssl证书

输出响应

​print(response.text)​​查看响应内容,unicode格式

​print(response.text.encode('utf8'))​

​print(response.content)​​查看响应内容,返回的字节流数据(好像是二进制代码)

​print(response.url)​​ 返回请求后完整的url地址

​print(response.encoding)​​查看响应头部字符编码

​print(response.status_code)​​查看返回的响应码

​print(response.json())​​显示json文件

​response.history​​追踪重定向的过程

​cookiejar = response.coookies​​ 获取返回的cookie值

​cookiedict = requests.utils.dict_from_cookiejar(cookiejar)​​转化cookie为字典类型