一、requests模块介绍
Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,使用Requests可以轻而易举的完成浏览器可有的任何操作。
1、安装requests模块
代码语言:javascript复制pip3 install requests
推荐使用源安装这样会提高安装效率,这里用的豆瓣云
pip3 install requests -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
二、GET请求的使用
1、不带参数的get请求
发送请求一般分为:1.请求参数 2. 请求方法3.返回结果
请求地址博客园:https://www.cnblogs.com/wen-cheng/
代码语言:javascript复制import requests
def get_res():
url = 'https://home.cnblogs.com/u/wen-cheng'
res = requests.get(url)
# 获取code
print('code:%d' % res.status_code)
# 获取返回txt内容
print('res:%s' % res.text)if __name__ == '__main__':
get_res()
2、再发一个带参数的get请求
请求地址:http://zzk.cnblogs.com/s/blogpost?Keywords=自动化测试平台TestDog-V1
请求参数:Keywords=自动化测试平台TestDog-V1,可以以字典的形式传参:{"Keywords": "自动化测试平台TestDog-V1"}
代码语言:javascript复制import requests
def get_params_res():
params = {
"Keywords": "自动化测试平台TestDog-V1"
}
url = 'https://zzk.cnblogs.com/s/blogpost'
res = requests.get(url, params)
print('code:%d' % res.status_code)
print('res:%s' % res.text)if __name__ == '__main__':
get_params_res()
3、发一个动态参数get请求
请求地址:http://zzk.cnblogs.com/s/blogpost?Keywords=?
请求参数:Keywords=?,可以以字典的形式传参数:{"Keywords": ?}
代码语言:javascript复制
import requests
def get_kparams_res():
k = input('输入关键字:').strip()
params = {
"Keywords": k
}
url = 'https://zzk.cnblogs.com/s/blogpost'
res = requests.get(url, params)
print('code:%d' % res.status_code)
print('res:%s' % res.text)if __name__ == '__main__':
get_kparams_res()
4、发一个带有headers和cookie的get请求
请求地址:http://zzk.cnblogs.com/s/blogpost?Keywords=自动化测试平台TestDog-V1
请求参数:Keywords=自动化测试平台TestDog-V1,可以以字典的形式传参:{"Keywords": "自动化测试平台TestDog-V1"}
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36' }
cookie=DetectCookieSupport=OK
代码语言:javascript复制import requests
def getCookie():
"""
获取cookie
:return:
"""
cook_url = 'https://zzk.cnblogs.com/s/blogpost?Keywords="自动化测试平台TestDog-V1"'
response = requests.get(cook_url)
cookie_value = ''
for key, value in response.cookies.items():
cookie_value = key '=' value ';'
print(cookie_value)
return cookie_value
def get_headers_params_res():
params = {
"Keywords": "自动化测试平台TestDog-V1"
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36'
}
url = "https://zzk.cnblogs.com/s/blogpost"
cookie_value = getCookie()
headers['Cookie'] = cookie_value
res = requests.get(url, headers=headers, data=params)
print('code:%d' % res.status_code)
print('res:%s' % res.text)if __name__ == '__main__':
get_headers_params_res()
三、本章小结
1、一个完整的requests请求
代码语言:javascript复制def get_Summarize():
url = "https://xxx.xxx.com/"
headers = {
'k': 'w'
}
params = {
'k': 'w'
}
requests.get(url, headers=headers, data=params)
2、requests方法总结:
代码语言:javascript复制 print(dir(requests))
3、常用方法
- requests.status_code #响应状态码
- requests.content #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
- requests.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
- requests.json() #Requests中内置的JSON解码器
- requests.url # 获取url
- requests.encoding # 编码格式
- requests.cookies # 获取cookie
- requests.raw #返回原始响应体
- requests.text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码
- requests.raise_for_status() #失败请求(非200响应)抛出异常
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家的支持。