作者:小刚
一位苦于信息安全的萌新小白帽,记得关注给个赞,谢谢
本实验仅用于信息防御教学,切勿用于其它用途
简单介绍
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为字典类型