zoukankan      html  css  js  c++  java
  • requests库详解

      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')
  • 相关阅读:
    [华为]计算字符串的相似度
    Java继承和组合
    Java多态(注意事项)
    Eclipse快捷键
    求二叉树中节点的最大距离
    设计模式-工厂模式
    设计模式-单例模式
    滴滴校招0910
    八大排序算法之七-归并排序
    单链表的实现(创建+排序(选择))
  • 原文地址:https://www.cnblogs.com/qqw-1995/p/9855394.html
Copyright © 2011-2022 走看看