技术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')) # 异常处理