• requests请求库


    # coding = utf-8
    """
    同urllib一样
    requests 也是发送http请求的第三方库 兼容Python2和3
    实现了http的绝大部分功能。
    
    安装  pip install requests
    """
    
    # 1.requests发送请求
    """
    同直接同requests.get/post来指定发送请求的方式
    pycharm环境下,可通过alt+鼠标点击进入源代码,可观察requests的相关参数
    """
    # import requests
    # 请求百度页面
    # response = requests.get('http://www.baidu.com')
    # print(response)
    # 打印响应内容,也可通过debug来查看response对象里面包含的值
    # 请求返回值是一个Response对象,是对HTTP协议中服务端返回给客户端响应数据的封装
    # 包括状态码,响应头,响应体
    
    # 显示状态码
    # code = response.status_code  # 状态码
    
    # 响应头信息
    # for key, value in response.headers.items():
    #     print('{}:{}'.format(key, value))
    
    # 响应体
    # print(response.content)
    # content返回原始数据,字节串,bytes类型,一般图片、音频、视频数据,就用content
    # 可通过response.content.decode()解码,默认utf-8解码,将字节串转码为字符串
    
    # print(response.text)
    # 返回文本数据, str类型,是经过转码的数据,但是文本中的中文可能出现乱码
    
    # 显示请求网页的编码方式
    # print(response.encoding)  # 一般为ISO-8859
    
    # 设置网页编码方式
    # response.encoding = 'utf-8'
    # 因为网页默认编码为ISO8859,所以显示中文的时候,可能乱码,
    # 因此通过以上方法设置编码为utf-8,可解决中文乱码问题
    
    # 2.requests请求url传参
    """
    通过对url传参,拼接字符串,因此请求变为http://www.baidu.com/s?wd=python
    """
    # import requests
    # get请求的传参
    # parms = {'wd': 'python'}
    # response = requests.get('http://www.baidu.com/s?', parms=parms)
    
    # post请求的传参,此处的url为测试网站
    # 同get一样,参数类型也是字典格式
    # data = {'key1': 2, 'key3': 3}
    # r = requests.post('http://httpbin.org/post', data=data)
    # print(r.text)
    
    
    # 3.requests中的超时设置
    # import requests
    # 设置超时时间为5秒,若5s内目标地址没有响应,则抛出异常
    # requests.get('https://www.google.com', timeout=5)
    
    
    # 4.request中的cookies处理
    """
    通过requests请求目标网站,返回值中自动携带cookies
    可通过response.cookies查看
    可将返回的cookie保存下来,然后下一次访问时携带上即可
    例:
    cookie = response.cookies
    下次请求时:resquest.get(xxx.xxx, cookies=cookie)即可携带上次访问
    页面时返回的cookie信息
    """
    # import requests
    # params = {'wd':"python"}
    # response = requests.get('http://www.baidu.com/s?', params=params)
    # print(response.cookies)
    
    
    
    #5.requests中的会话--session
    """
    http协议是一种无状态协议,无法保持会话状态,因此出现cookies,访问时携带cookie信息,
    即可保持上一次会话的信息,requests中返回值中携带cookies信息,但是下次访问时需要
    手动传入,依旧不方便,因此出现session,它会自动保存cookies信息,
    并在下一次访问中自动传入
    访问网页的方式基本和requests相同
    """
    # import requests
    # 构建一个会话  api基本和requests相同,后面的访问操作都通过该会话进行
    # session = requests.session()
    # 请求方式和request相同
    # session.get('http://www.baidu.com')
    
    
    #6.requests中的ssl 认证
    """
    部分网站请求时需要证书,因此需要对证书进行一定处理
    设置verify=False来设定请求网站时不验证证书
    同样的,通过设置verify=True设置请求时验证证书
    """
    # import requests
    # r = requests.get('https://www.jianshu.com', verify=False)
    
    # 7.requests伪装浏览器访问目标网站
    """
    部分网站会识别是通过代码请求还是人来请求的,requests中同样提供将请求伪装为
    浏览器的接口, 通过headers传参即可
    
    因为知乎在未登录时,会自动跳转到登录页面
    通过allow_redirects=False设置不跳转
    """
    # import requests
    # headers = {
    #     'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36'
    # }
    # r = requests.get('http://www.zhihu.com', verify=False,
    #                  headers=headers, allow_redirects=False)
    
    #
    # 8.requests中的代理设置
    # import requests
    # 将代理设置为如下格式,参数传入即可
    # proxies = {
    #     'http': 'http://10.11.12.13:1234',
    #     'https': 'http://10.11.12.13:1234',
    # }
    # requests.get("http://httpbin.org/ip", proxies=proxies)
    
    # 9. json
    """
    将json格式数据转成字典格式,前提是目标网站返回值是json格式的
    因此该方法用的也很少
    """
    # import requests
    # url = 'http://www.baidu.com'
    # r = requests.get(url)
    # print(r.json())
  • 相关阅读:
    selenium——上传文件
    selenium——下拉框
    selenium——鼠标操作ActionChains:点击、滑动、拖动
    selenium定位元素—逻辑运算、xpath函数、轴定位
    spring设置webAppRootKey
    树莓3 集群
    redis集群搭建
    MQ基础
    MQ集群测试环境搭建(多节点负载均衡,共享一个kahaDB文件(nas方式))
    weblogic对jms实现的QueueConnection实现与TopicConnection实现问题
  • 原文地址:https://www.cnblogs.com/pythoner6833/p/8997319.html
Copyright © 2020-2023  润新知