• request & requests 模块


    request 模块

    #requests 库
    #python标准库中提供了: urllib等模块以供http请求,但是,它的api太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。

    # /usb/bin/env python
    #! -*- encoding=utf=8 -*-
    #example:

    import urllib.request

    #例子1
    f = urllib.request.urlopen('http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=424662508')
    result = f.read().decode('utf=8')
    print(result)

    #例子2 带请求头
    req = urllib.request.Request("http://www.example.com")
    req.add_header("Referer","http://www.python.org")
    r = urllib.request.urlopen(req)

    result = f.read().decode('utf-8')

    print(result)

    requests 模块

    requests 模块的安装
    pip3 install requests

    #使用模块

    #1 . 无参数实例

    import requests

    ret = requests.get('https://github.com/timeline.json')
    print(ret.url)
    print(ret.text)

    #有参数实例
    import requests
    payload = {'key1':'value1','key2':'value2'}
    ret = requests.get("http://httpbin.org/get",params=payload)

    print(ret.url)
    print(ret.text)


    1 post 实例:
    import requests
    payload = {'key1':'value1','key2':'value2'}
    ret = requests.post("http://httpbin.org/post",data=payload)
    print(ret.text)


    2 发送请求头和数据实例
    import requests
    import json

    url = 'https://api.github.com/some/endpoint'
    payload = {'some':'data'}
    headers = {'content-type':'application/json'}

    ret = requests.post(url,data=json.dumps(payload),headers=headers)

    print(ret.text)
    print(ret.cookies)

    requests.get(url, params=None, **kwargs)
    requests.post(url, data=None, json=None, **kwargs)
    requests.put(url, data=None, **kwargs)
    requests.head(url, **kwargs)
    requests.delete(url, **kwargs)
    requests.patch(url, data=None, **kwargs)
    requests.options(url, **kwargs)

    # 以上方法均是在此方法的基础上构建
    requests.request(method, url, **kwargs)

    其他请求

    import urllib
    import requests
    from xml.etree import ElementTree as ET
    
    # 使用内置模块urllib发送HTTP请求,或者XML格式内容
    """
    f = urllib.request.urlopen('http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=424662508')
    result = f.read().decode('utf-8')
    """
    
    
    # 使用第三方模块requests发送HTTP请求,或者XML格式内容
    r = requests.get('http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=424662508')
    result = r.text
    
    # 解析XML格式内容
    node = ET.XML(result)
    
    # 获取内容
    if node.text == "Y":
        print("在线")
    else:
        print("离线")
    

      

    import urllib
    import requests
    from xml.etree import ElementTree as ET
    
    # 使用内置模块urllib发送HTTP请求,或者XML格式内容
    """
    f = urllib.request.urlopen('http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx/getDetailInfoByTrainCode?TrainCode=G666&UserID=')
    result = f.read().decode('utf-8')
    """
    
    # 使用第三方模块requests发送HTTP请求,或者XML格式内容
    r = requests.get('http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx/getDetailInfoByTrainCode?TrainCode=G666&UserID=')
    result = r.text
    
    # 解析XML格式内容
    root = ET.XML(result)
    for node in root.iter('TrainDetailInfo'):
        print(node.find('TrainStation').text,node.find('StartTime').text,node.tag,node.attrib)
    

      

  • 相关阅读:
    程序员深夜惨遭老婆鄙视,原因竟是CAS原理太简单?| 每一张图都力求精美
    微前端大赏
    【老李瞎折腾】001、折腾一下DDNS
    【老李瞎折腾】000、使用树莓派搭建自己的服务器
    【老李瞎折腾】目录
    RGB打水印在YUV图片上
    BMP格式解析
    测试开发不会前端?ElementUI你需要了解一下
    如何通过命令行运行Postman脚本2020-09-15
    长点心吧!测试老鸟教你如何避免背锅
  • 原文地址:https://www.cnblogs.com/zxcv-/p/7732083.html
Copyright © 2020-2023  润新知