zoukankan      html  css  js  c++  java
  • Requests请求库

    Requests请求库

    import requests
    # -*- coding:utf8 -*-
    # -*- coding:utf8 -*-
    # 工程路径:3 requests请求库使用.py
    # 工程日期:8/6/2019
    # 工程目标:
    """
    requests 7个主要方法:
    requests.request(): 构造一个请求,支撑一下各方法的基础方法
    requests.get(): 获取HTML网页的主要方法,对应HTTP的GET
    requests.head(): 获取HTML网页头的信息方法,对应HTTP的HEAD
    requests.post(): 向HTML网页提交POST请求方法,对应HTTP的POST
    requests.put(): 向HTML网页提交PUT请求的方法,对应HTTP的RUT
    requests.patch(): 向HTML网页提交局部修改请求,对应于HTTP的PATCH
    requests.delete(): 向HTML页面提交删除请求,对应HTTP的DELETE

    13个参数 requests.request(method,url,**kwargs)
    method:请求方式,对应get/put/post等7种
    requests.method(url, **kwargs)
    url:拟获取页面的url链接

    **kwargs:控制访问参数,共13个,均为可选项:
    params: 字典或字节序列,作为参数增加到url中
    data: 字典,字节序列或文件对象,作为Request的内容
    json: JSON格式的数据,作为Request的内容
    headers: 字典,HTTP定制头(模拟浏览器进行访问)
    cookies: 字典或CpplieJar,Request中的cookie
    auth: 元祖,支持HTTP认证功能
    files: 字典类型,传输文件
    timeout: 设定超时时间,秒为单位
    proxies: 字典类型,设定访问代理服务器,可以增加登陆认证
    allow_redirects:True//False, 默认为True,重定向开关
    stream:True/False,默认为True, 获取内容立即下载开关
    verify:True/False,默认为True, 认证SSL证书开关
    cert: 本地SSL证书路径
    """
    #%%
    import requests
    response = requests.get('http://www.baidu.com/')
    print(type(response)) #查看response的类型
    print(requests.status_codes) # 状态码
    print(response.text) # 输出响应内容
    print(response.headers) # 返回响应头
    print(requests.cookies)

    #%% get 方法传传参 添加参数,headers等
    import requests
    data = {
    "s?tn" : "02003390_30_hao_pg",
    'wd':'美女'
    }
    header = {}
    response = requests.get('http://www.taobao.com/',params=data )
    print(response.text)
    print(response.url)
    #%% 解析json
    import requests
    import json
    response = requests.get('http://www.baidu.com/')
    print(response.json())

    #%% 获取二进制流数据
    import requests
    response = requests.get('https://hbimg.huabanimg.com/6519f3b9d79be866403eb8d33ea5fa9ca5e3e5a2e40f6-Fzf6yq_fw658')
    with open('tupian.jpg','wb') as f:
    f.write(response.content)
    f.close()

    #%% 响应属性
    import requests
    response = requests.get('http://www.baidu.com')
    print(response.content)
    print(response.url)
    print(response.headers)
    print(response.text)
    print(response.cookies)
    print(response.encoding)
    print(response.history)
    print(response.next)

    #%%状态码判断
    import requests
    response = requests.get('http://www.baidu.com')
    if response.status_code == requests.codes.ok:
    print("ok")


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


    #%% 会话维持 session

    #%% 证书验证
    # 大部分的网站为https网站, 需要证书验证 非官方认证的证书网站会发生ssl报错
    # 为避免该类型的异常抛出,将证书的参数设置为false
    import requests
    # response = requests.get('https://www.12306.cn',verify = False)
    response = requests.get('https://www.12306.cn')
    print(response.status_code)
    print(response.content)

    #%% 代理设置
    # 声明字典类型的代理集,作为代理参数传即可
    import requests
    proxies = {
    'http':'http://127.0.0.1:1080'
    #'https': 'https://127.0.1.7:1060'
    }
    response = requests.get('https://www.12306.cn',verify = False, proxies=proxies)
    print(response.content)


    #%% 异常处理
    # requestsexception(ioerror)
    # 父类异常为requestexception 继承IOerror
    # requests的异常也可以捕获子类 connectionerror、urlrequerd、toomanyredirects、httperror
    # connecttimeout、readtimeout、timeout、sslerror、proxyerror 异常
    import requests
    from requests.exceptions import ReadTimeout, HTTPError, RequestException
    response = requests.get('http://www.baidu.com')
    try:
    response = requests.get('https://www.baidu.com', timeout=0.1)
    print(response.status_code)
    except ReadTimeout:
    print("超时错误")
    except ConnectionError:
    print("连接错误")
    except RequestException:
    print("错误")

  • 相关阅读:
    MySQL 触发器
    MySQL视图
    MySQL中的存储过程和函数
    Mysql数据库连接查询
    数据库(MySQL)表基本操作
    Spring MVC---数据绑定和表单标签
    Spring MVC---基于注解的控制器
    Spring基于AOP的事务管理
    Ubuntu下通过wine安装HeidiSQL
    chmod命令详解
  • 原文地址:https://www.cnblogs.com/binyang/p/10995130.html
Copyright © 2011-2022 走看看