requests库详解
- import requests
- #实例引入
- # response = requests.get('http://www.baidu.com')
- # print(type(response))
- # print(response.status_code)
- # print(type(response.text))
- # print(response.text)
- # print(response.cookies)
- #
- # #各种请求方式
- # a = requests.post('http://httpbin.org/post')
- # b = requests.put('http://httpbin.org/put')
- # requests.delete('http://httpbin.org/delete')
- # requests.head('http://httpbin.org/get')
- # requests.options('http://httpbin.org/get')
- # print(a.text)
- #请求
- #基本GET请求
- #基本写法
- # response = requests.get('http://httpbin.org/get')
- # print(response.text)
- # #带参数GET请求
- # response = requests.get('http://httpbin.org/get?name=gemmey&age=22')
- # print(response.text)
- #
- # data = {
- # 'name':'gemmey',
- # '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))
- # print(response.json())#执行了json.loads()操作
- # print(json.loads(response.text))
- # print(type(response.json()))
- #获取二进制数据(图片、视频等)
- # response = requests.get('http://github.com/favicon.ico')
- # print(type(response.text),type(response.content))
- # print(response.text)
- # print(response.content)
- # with open('favicon.ico','wb') as f:
- # f.write(response.content)
- #添加Headers
- #不加headers会被屏蔽
- # headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
- # response = requests.get('https://www.zhihu.com/explore',headers=headers)
- # #response.encoding = 'utf-8'
- # print(response.text)
- #基本POST请求
- #form表单提交
- # data = {'name':'germey','age':22}
- # response = requests.post('http://httpbin.org/post',data=data)
- # print(response.text)
- # #加个headers
- # data = {'name':'germey','age':22}
- # headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
- # response = requests.post('http://httpbin.org/post',data=data,headers=headers)
- # print(response.json())
- #响应
- #response的属性
- headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
- # response = requests.get('http://www.jianshu.com',headers=headers)
- # print(type(response.status_code),response.status_code)
- # print(type(response.headers),response.headers)
- # print(type(response.cookies),response.cookies)
- # print(type(response.url),response.url)
- # print(type(response.history),response.history)
- #状态码判断
- # response = requests.get('http://www.jianshu.com',headers = headers)
- # exit() if not response.status_code==requests.codes.ok else print('Request Successfilly')
- # response = requests.get('http://www.jianshu.com',headers = headers)
- # exit() if not response.status_code==200 else print('Request Successfilly')
- #
- # #高级操作
- # #文件上传
- # files = {'file':open('favicon.ico','rb')}
- # response = requests.post('http://httpbin.org/post',files=files)
- # print(response.text)
- #获取cookie
- # response = requests.get('http://baidu.com')
- # print(response.cookies)
- # 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)
- # '''
- # {
- # "cookies": {}
- # }
- # 相当于用两个浏览器分别访问
- # '''
- # #实例化Session对象,相当于一个浏览器访问
- # s = requests.Session()
- # s.get('http://httpbin.org/cookies/set/number/123456789')
- # response = s.get('http://httpbin.org/cookies')
- # print(response.text)
- #证书验证
- #SSL提示的错误,访问HTTPS它首先验证证书,如果证书不合法会报错;是否进行证书验证verify
- # from requests.packages import urllib3
- # urllib3.disable_warnings()#消除警告信息
- # response = requests.get('https://www.12306.cn',verify=False)
- # print(response.status_code)
- #手动指定证书
- #本地没有证书
- # response = requests.get('https://www.12306.cn',cert=('/path/server.crt','/path/key'))
- # print(response.status_code)
- #代理设置
- #我这两个代理失效了
- # proxies = {
- # 'http':'http://127.0.0.1:9743',
- # 'https':'https://127.0.0.1:9743',
- # }
- # response = requests.get('https://www.taobao.com',proxies=proxies)
- # print(response.status_code)
- #代理有用户名和密码
- # proxies = {
- # 'http':'http://user:password@127.0.0.1:9743/',
- # }
- # response = requests.get('https://www.taobao.com',proxies=proxies)
- # print(response.status_code)
- #超时设置
- # from requests.exceptions import ReadTimeout
- # try:
- # response = requests.get('https://httpbin.org/get',timeout=0.5)
- # print(response.status_code)
- # except ReadTimeout:
- # print('TimeOut')
- #认证设置,需要用户名密码
- # from requests.auth import HTTPBasicAuth
- #
- # r = requests.get('http://120.27.34.24:9001',auth=HTTPBasicAuth('user','123'))
- # print(r.status_code)
- #异常处理
- from requests.exceptions import ReadTimeout,HTTPError,RequestException,ConnectionError
- try:
- response = requests.get('http://httpbin.org/get',timeout=0.1)
- print(response.status_code)
- except ReadTimeout:
- print('Timeout')
- except ConnectionError:
- print('Connect error')
- except HTTPError:
- print('Http error')
- except RequestException:
- print('Error')
requests库详解的更多相关文章
- python WEB接口自动化测试之requests库详解
由于web接口自动化测试需要用到python的第三方库--requests库,运用requests库可以模拟发送http请求,再结合unittest测试框架,就能完成web接口自动化测试. 所以笔者今 ...
- Python爬虫:requests 库详解,cookie操作与实战
原文 第三方库 requests是基于urllib编写的.比urllib库强大,非常适合爬虫的编写. 安装: pip install requests 简单的爬百度首页的例子: response.te ...
- requests库详解 --Python3
本文介绍了requests库的基本使用,希望对大家有所帮助. requests库官方文档:https://2.python-requests.org/en/master/ 一.请求: 1.GET请求 ...
- python接口自动化测试之requests库详解
前言 说到python发送HTTP请求进行接口自动化测试,脑子里第一个闪过的可能就是requests库了,当然python有很多模块可以发送HTTP请求,包括原生的模块http.client,urll ...
- 爬虫学习--Requests库详解 Day2
什么是Requests Requests是用python语言编写,基于urllib,采用Apache2 licensed开源协议的HTTP库,它比urllib更加方便,可以节约我们大量的工作,完全满足 ...
- Python爬虫学习==>第八章:Requests库详解
学习目的: request库比urllib库使用更加简洁,且更方便. 正式步骤 Step1:什么是requests requests是用Python语言编写,基于urllib,采用Apache2 Li ...
- python的requests库详解
快速上手 迫不及待了吗?本页内容为如何入门 Requests 提供了很好的指引.其假设你已经安装了 Requests.如果还没有,去安装一节看看吧. 首先,确认一下: Requests 已安装 Req ...
- Python爬虫系列-Requests库详解
Requests基于urllib,比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求. 实例引入 import requests response = requests.get( ...
- Python之Unittest和Requests库详解
1.按类来执行 import unittest class f1(unittest.TestCase): def setUp(self): pass def tearDown(self): pass ...
随机推荐
- JavaScript之控制标签内容
function abb(a){ return document.getElementById(a); } console.log(abb('box').innerHTML); 标签.innerHTM ...
- border-radius圆角属性
border-radius圆角 当盒子的宽高一样时,设置盒子的border-radius为50%,得到一个圆形 border-radius: 20px 30px 200px 200px; 只写一个值: ...
- Qt ListWidget item 发起拖放
第一步:重写类 MyListWidget 继承自 QListWidget 第二步:重写 mousePressEvent 函数 和 mouseMoveEvent 函数 void mousePressEv ...
- 【Linux下Hadoop-eclipse-plus-3.2.0】编译Hadoop连接eclipse的插件遇见的一系列错误,崩溃的操作
2019-09-02 23:35:22 前言:首先,我想吐槽下自己,居然花费了4到5个夜晚和中午的时间来做这件事情,直到刚才才顺利解决,我也挺佩服自己的! 我在这个过程中参考其他人的博客,非常感谢他们 ...
- RedHat 6.3安装MySQL-server-5.6.13-1.el6.x86_64.rpm
在RedHat 6.3下安装MySQL-server-5.6.13-1.el6.x86_64.rpm 首先下载下面三个文件: MySQL-client-5.6.13-1.el6.x86_64.rpm ...
- 全局唯一ID生成器(Snowflake ID组成) 分析
Snowflake ID组成 Snowflake ID有64bits长,由以下三部分组成: time—42bits,精确到ms,那就意味着其可以表示长达(2^42-1)/(1000360024*365 ...
- django学习记录1
在看django的基础知识,还是按照以前一样来总结,还是晚上再统一总结好了,边看边总结好像效果不大. 第一部分是生成数据库,用python manage.migrate命令来生成django的基础架构 ...
- Elasticsearch 术语介绍和CRUD实际操作入门
一.Elastic Stack 核心Elasticsearch Elasticsearch 是一个分布式.RESTful 风格的搜索和数据分析引擎.Elasticsearch 是面向文档的,这就意味着 ...
- NET Framework 的泛型
NET Framework 的泛型 泛型是具有占位符(类型参数)的类.结构.接口和方法,这些占位符是类.结构.接口和方法所存储或使用的一个或多个类型的占位符.泛型集合类可以将类型参数用作它所存储的对象 ...
- java EL表达式中${param.name}详细
在浏览器地址输入,表示传入一个参数test,值为123 URL:http://localhost:8888/Test/index.jsp?test=123 <body> ${test} $ ...