1. import requests
  2.  
  3. #实例引入
  4. # response = requests.get('http://www.baidu.com')
  5. # print(type(response))
  6. # print(response.status_code)
  7. # print(type(response.text))
  8. # print(response.text)
  9. # print(response.cookies)
  10. #
  11. # #各种请求方式
  12. # a = requests.post('http://httpbin.org/post')
  13. # b = requests.put('http://httpbin.org/put')
  14. # requests.delete('http://httpbin.org/delete')
  15. # requests.head('http://httpbin.org/get')
  16. # requests.options('http://httpbin.org/get')
  17. # print(a.text)
  18.  
  19. #请求
  20. #基本GET请求
  21. #基本写法
  22. # response = requests.get('http://httpbin.org/get')
  23. # print(response.text)
  24. # #带参数GET请求
  25. # response = requests.get('http://httpbin.org/get?name=gemmey&age=22')
  26. # print(response.text)
  27. #
  28. # data = {
  29. # 'name':'gemmey',
  30. # 'age':22
  31. # }
  32. # response = requests.get('http://httpbin.org/get',params=data)
  33. # print(response.text)
  34. #
  35. # #解析Json
  36. # import json
  37. # response = requests.get('http://httpbin.org/get')
  38. # print(type(response.text))
  39. # print(response.json())#执行了json.loads()操作
  40. # print(json.loads(response.text))
  41. # print(type(response.json()))
  42.  
  43. #获取二进制数据(图片、视频等)
  44. # response = requests.get('http://github.com/favicon.ico')
  45. # print(type(response.text),type(response.content))
  46. # print(response.text)
  47. # print(response.content)
  48. # with open('favicon.ico','wb') as f:
  49. # f.write(response.content)
  50.  
  51. #添加Headers
  52. #不加headers会被屏蔽
  53. # 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'}
  54. # response = requests.get('https://www.zhihu.com/explore',headers=headers)
  55. # #response.encoding = 'utf-8'
  56. # print(response.text)
  57.  
  58. #基本POST请求
  59.  
  60. #form表单提交
  61. # data = {'name':'germey','age':22}
  62. # response = requests.post('http://httpbin.org/post',data=data)
  63. # print(response.text)
  64. # #加个headers
  65. # data = {'name':'germey','age':22}
  66. # 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'}
  67. # response = requests.post('http://httpbin.org/post',data=data,headers=headers)
  68. # print(response.json())
  69.  
  70. #响应
  71.  
  72. #response的属性
  73. 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'}
  74. # response = requests.get('http://www.jianshu.com',headers=headers)
  75. # print(type(response.status_code),response.status_code)
  76. # print(type(response.headers),response.headers)
  77. # print(type(response.cookies),response.cookies)
  78. # print(type(response.url),response.url)
  79. # print(type(response.history),response.history)
  80.  
  81. #状态码判断
  82. # response = requests.get('http://www.jianshu.com',headers = headers)
  83. # exit() if not response.status_code==requests.codes.ok else print('Request Successfilly')
  84. # response = requests.get('http://www.jianshu.com',headers = headers)
  85. # exit() if not response.status_code==200 else print('Request Successfilly')
  86. #
  87. # #高级操作
  88. # #文件上传
  89. # files = {'file':open('favicon.ico','rb')}
  90. # response = requests.post('http://httpbin.org/post',files=files)
  91. # print(response.text)
  92.  
  93. #获取cookie
  94. # response = requests.get('http://baidu.com')
  95. # print(response.cookies)
  96. # for key,value in response.cookies.items():
  97. # print(key + '=' + value)
  98.  
  99. #会话维持
  100. #模拟登录
  101. # requests.get('http://httpbin.org/cookies/set/number/123456789')
  102. # response = requests.get('http://httpbin.org/cookies')
  103. # print(response.text)
  104. # '''
  105. # {
  106. # "cookies": {}
  107. # }
  108. # 相当于用两个浏览器分别访问
  109. # '''
  110. # #实例化Session对象,相当于一个浏览器访问
  111. # s = requests.Session()
  112. # s.get('http://httpbin.org/cookies/set/number/123456789')
  113. # response = s.get('http://httpbin.org/cookies')
  114. # print(response.text)
  115.  
  116. #证书验证
  117. #SSL提示的错误,访问HTTPS它首先验证证书,如果证书不合法会报错;是否进行证书验证verify
  118. # from requests.packages import urllib3
  119. # urllib3.disable_warnings()#消除警告信息
  120. # response = requests.get('https://www.12306.cn',verify=False)
  121. # print(response.status_code)
  122.  
  123. #手动指定证书
  124. #本地没有证书
  125. # response = requests.get('https://www.12306.cn',cert=('/path/server.crt','/path/key'))
  126. # print(response.status_code)
  127.  
  128. #代理设置
  129. #我这两个代理失效了
  130. # proxies = {
  131. # 'http':'http://127.0.0.1:9743',
  132. # 'https':'https://127.0.0.1:9743',
  133. # }
  134. # response = requests.get('https://www.taobao.com',proxies=proxies)
  135. # print(response.status_code)
  136. #代理有用户名和密码
  137. # proxies = {
  138. # 'http':'http://user:password@127.0.0.1:9743/',
  139. # }
  140. # response = requests.get('https://www.taobao.com',proxies=proxies)
  141. # print(response.status_code)
  142.  
  143. #超时设置
  144. # from requests.exceptions import ReadTimeout
  145. # try:
  146. # response = requests.get('https://httpbin.org/get',timeout=0.5)
  147. # print(response.status_code)
  148. # except ReadTimeout:
  149. # print('TimeOut')
  150.  
  151. #认证设置,需要用户名密码
  152. # from requests.auth import HTTPBasicAuth
  153. #
  154. # r = requests.get('http://120.27.34.24:9001',auth=HTTPBasicAuth('user','123'))
  155. # print(r.status_code)
  156.  
  157. #异常处理
  158. from requests.exceptions import ReadTimeout,HTTPError,RequestException,ConnectionError
  159.  
  160. try:
  161. response = requests.get('http://httpbin.org/get',timeout=0.1)
  162. print(response.status_code)
  163. except ReadTimeout:
  164. print('Timeout')
  165. except ConnectionError:
  166. print('Connect error')
  167. except HTTPError:
  168. print('Http error')
  169. except RequestException:
  170. print('Error')

requests库详解的更多相关文章

  1. python WEB接口自动化测试之requests库详解

    由于web接口自动化测试需要用到python的第三方库--requests库,运用requests库可以模拟发送http请求,再结合unittest测试框架,就能完成web接口自动化测试. 所以笔者今 ...

  2. Python爬虫:requests 库详解,cookie操作与实战

    原文 第三方库 requests是基于urllib编写的.比urllib库强大,非常适合爬虫的编写. 安装: pip install requests 简单的爬百度首页的例子: response.te ...

  3. requests库详解 --Python3

    本文介绍了requests库的基本使用,希望对大家有所帮助. requests库官方文档:https://2.python-requests.org/en/master/ 一.请求: 1.GET请求 ...

  4. python接口自动化测试之requests库详解

    前言 说到python发送HTTP请求进行接口自动化测试,脑子里第一个闪过的可能就是requests库了,当然python有很多模块可以发送HTTP请求,包括原生的模块http.client,urll ...

  5. 爬虫学习--Requests库详解 Day2

    什么是Requests Requests是用python语言编写,基于urllib,采用Apache2 licensed开源协议的HTTP库,它比urllib更加方便,可以节约我们大量的工作,完全满足 ...

  6. Python爬虫学习==>第八章:Requests库详解

    学习目的: request库比urllib库使用更加简洁,且更方便. 正式步骤 Step1:什么是requests requests是用Python语言编写,基于urllib,采用Apache2 Li ...

  7. python的requests库详解

    快速上手 迫不及待了吗?本页内容为如何入门 Requests 提供了很好的指引.其假设你已经安装了 Requests.如果还没有,去安装一节看看吧. 首先,确认一下: Requests 已安装 Req ...

  8. Python爬虫系列-Requests库详解

    Requests基于urllib,比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求. 实例引入 import requests response = requests.get( ...

  9. Python之Unittest和Requests库详解

    1.按类来执行 import unittest class f1(unittest.TestCase): def setUp(self): pass def tearDown(self): pass ...

随机推荐

  1. JavaScript之控制标签内容

    function abb(a){ return document.getElementById(a); } console.log(abb('box').innerHTML); 标签.innerHTM ...

  2. border-radius圆角属性

    border-radius圆角 当盒子的宽高一样时,设置盒子的border-radius为50%,得到一个圆形 border-radius: 20px 30px 200px 200px; 只写一个值: ...

  3. Qt ListWidget item 发起拖放

    第一步:重写类 MyListWidget 继承自 QListWidget 第二步:重写 mousePressEvent 函数 和 mouseMoveEvent 函数 void mousePressEv ...

  4. 【Linux下Hadoop-eclipse-plus-3.2.0】编译Hadoop连接eclipse的插件遇见的一系列错误,崩溃的操作

    2019-09-02 23:35:22 前言:首先,我想吐槽下自己,居然花费了4到5个夜晚和中午的时间来做这件事情,直到刚才才顺利解决,我也挺佩服自己的! 我在这个过程中参考其他人的博客,非常感谢他们 ...

  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 ...

  6. 全局唯一ID生成器(Snowflake ID组成) 分析

    Snowflake ID组成 Snowflake ID有64bits长,由以下三部分组成: time—42bits,精确到ms,那就意味着其可以表示长达(2^42-1)/(1000360024*365 ...

  7. django学习记录1

    在看django的基础知识,还是按照以前一样来总结,还是晚上再统一总结好了,边看边总结好像效果不大. 第一部分是生成数据库,用python manage.migrate命令来生成django的基础架构 ...

  8. Elasticsearch 术语介绍和CRUD实际操作入门

    一.Elastic Stack 核心Elasticsearch Elasticsearch 是一个分布式.RESTful 风格的搜索和数据分析引擎.Elasticsearch 是面向文档的,这就意味着 ...

  9. NET Framework 的泛型

    NET Framework 的泛型 泛型是具有占位符(类型参数)的类.结构.接口和方法,这些占位符是类.结构.接口和方法所存储或使用的一个或多个类型的占位符.泛型集合类可以将类型参数用作它所存储的对象 ...

  10. java EL表达式中${param.name}详细

    在浏览器地址输入,表示传入一个参数test,值为123 URL:http://localhost:8888/Test/index.jsp?test=123 <body> ${test} $ ...