天道酬勤

Python编程—requests库

简介

官网中对requests的介绍是”HTTP for Humans“。

requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多。我们在做安全研究中,经常会使用requests去发送一些请求,用于我们去编写exp。

基础用法

r=requests.get('http://hackergu.com/')对网页发送一个GET请求

r=requests.post('http://hackergu.com/',data={'abc':'hackergu'})对网页发送一个POST请求,参数abc=hackergu

下面用两道ctf题演示一下:

GET请求得Flag

import requests

headers = {
    'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36'
}
data = {'what':'flag'}
r = requests.get('http://123.206.87.240:8002/get/', params=data, headers=headers) 
print(r.text)

该代码的意思就是对url发送一个参数为what、值为flag的GET请求。

GET请求有参数时,就要使用params

其中,print(r.text) 意为以文本形式打印源代码

运行结果如下:

POST请求得Flag

import requests

headers = {
    'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36'
}
r = requests.post('http://123.206.87.240:8002/post/', data={'what':'flag'}, headers=headers)
print(r.text)

发送POST请求时,使用data字典形式。

其他的一些用法:

print(r.status_code) # 打印状态码

print(r.url) # 打印请求url

print(r.headers) # 打印头信息

print(r.cookies) # 打印cookie信息

print(response.text) #以文本形式打印网页源码

print(r.content) #以字节流形式打印,一般处理二进制文件

print(r.json) #解析json格式的数据,如果无法解析,则抛出异常

赞(0) 打赏
未经允许不得转载:HackerGu‘s Blog » Python编程—requests库
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专注黑客技术的研究

联系我们联系我们

觉得文章有用就打赏一下文章作者

微信扫一扫打赏