Python中的requests库的学习总结

技术QQ交流群:294088839

# 什么是Requests?
# Requests 是Python语言编写,基于 urllib,采用Apache2 Licensed
# 开源协议的HTTP库
# 它比urllib 更加方便 ,可以节约我们大量的工作,完全满足http测试的需求
#  安装 requests 命令 pip install requests
import requests
# response = requests.get('https://www.baidu.com')
# print(type(response))
# # 状态码
# print(response.status_code)
# #  类型
# print(type(response.text))
# print(response.text)
# # cookies信息
# print(response.cookies)

# 各种请求
# requests.post('http://httpbin.org/post')
# requests.put('http://httpbin.org/put')
# response = requests.get('http://httpbin.org/get')
# print(response.text)

# 带参数的get请求
# response = requests.get('http://httpbin.org/get?name=germey&age=22')
# print(response.text)
# 或者用字典的形式传参
# data={
#     'name': 'json',
#     'age': 22
# }
# response = requests.get('http://httpbin.org/get', params=data)
# print(response.text)

# 解析json
import json
# response = requests.get('http://httpbin.org/get')
# print(type(response.text))
# # requests 内置自带json返回方法
# print(response.json())
# # 也可以用 json 库中的方法 进行json返回 其结果一致
# print(json.loads(response.text))
# print(type(response.json()))

# 获取一些二进制数据 用于下载 图片和视频
# response = requests.get('https://github.com/favicon.ico')
# print(type(response.text), type(response.content))
# print(response.text)
# # content 二进制字节流
# print(response.content)
# 进行图片保存
# with open('favicon.ico','wb') as f:
#     f.write(response.content)
#     f.close()

# 进行headers 头部信息添加
# response = requests.get('https://www.zhihu.com/explore')
# #print(response.text)
# headers = {
#     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36'
# }
# requests = requests.get('https://www.zhihu.com/explore', headers=headers)
# print(response.text)


# 基于POST请求
# data = {'name': 'json', 'age': '22'}
# response = requests.post('http://httpbin.org/post', data=data)
# #print(response.text)
# # 进行headers 头部信息设置
# headers = {
#     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36'
# }
# response = requests.post('http://httpbin.org/post', data=data, headers=headers)
# print(response.json())

# 响应数据
#response = requests.get('http://www.jianshu.com')
# print(type(response.status_code), response.status_code)
# print(type(response.headers),response.headers)
# print(type(response.cookies), response.cookies)
# print(response.url)
# 历史记录
# print(response.history)

# 状态码的判断
# response = requests.get('http://www.baidu.com')
# if not response.status_code == 200:
#     print('不存在啊')
# else:
#     print('存在')

# 文件上传
# files = {'file': open('favicon.ico', 'rb') }
# response = requests.post('http://httpbin.org/post', files=files)
# print(response.text)

# 获取cookie
# response = requests.get('http://www.baidu.com')
# for key, value in response.cookies.items():
#         print(key + '= ' + value)

# 会话维持
# 模拟登陆
# requests.get('http://httpbin.org/cookies/set/number/123456789')
# response = requests.get('http://httpbin.org/cookies')
# print(response.text)
# 设置 session  维持会话
# s = requests.Session()
# s.get('http://httpbin.org/cookies/set/number/123456789')
# response = s.get('http://httpbin.org/cookies')
# print(response.text)

# 证书认证
# response = requests.get('https://www.12306.cn', verify=False)
# print(response.status_code)

# 代理设置
# proxies = {
#     'http' : '127.0.0.1:8000'
# }
# response = requests.get('http://www.baidu.com', proxies=proxies)
# print(response.status_code)

# 如果代理有用户名和密码的时候
# proxies = {
#     'http' : 'http://user:[email protected]:8000'
# }
# response = requests.get('http://www.baidu.com', proxies=proxies)
# print(response.status_code)

# 如果代理是 socks
# pip install 'requests[socks]' 安装socks模块
# proxies = {
#     'http' : 'socks5://127.0.0.1:8000'
# }
# response = requests.get('http://www.baidu.com', proxies=proxies)
# print(response.status_code)

# 超时设置
# response = requests.get('http://www.taobao.com',timeout = 1)
# print(response.status_code)

# 认证设置
from  requests.auth import HTTPBasicAuth
r = requests.get('http://www.baidu.com', auth= HTTPBasicAuth('user,', '123'))

# 异常处理

猜你喜欢

转载自blog.csdn.net/Drug_/article/details/81273864
今日推荐