zoukankan      html  css  js  c++  java
  • 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)
    

      

  • 相关阅读:
    Linux C/C++编程之(三)常用命令之文件处理命令
    linux下查看activiti流程图乱码
    基于区块链的自主身份和可信声明
    数字证书PKI原理
    Linux C/C++编程之(二)常用命令之目录处理命令
    Linux C/C++编程之(一)VMware 虚拟机安装Ubuntu16.04 图解
    移动端专项测试-内存泄漏
    centos7 netstat命令使用场景 杂记
    《java入门第一季》之面向对象(构造方法)
    《java入门第一季》之面向对象this关键字
  • 原文地址:https://www.cnblogs.com/zxcv-/p/7732083.html
Copyright © 2011-2022 走看看