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)
    

      

  • 相关阅读:
    POJ 1659 Frogs' Neighborhood
    zoj 2913 Bus Pass(BFS)
    ZOJ 1008 Gnome Tetravex(DFS)
    POJ 1562 Oil Deposits (DFS)
    zoj 2165 Red and Black (DFs)poj 1979
    hdu 3954 Level up
    sgu 249 Matrix
    hdu 4417 Super Mario
    SPOJ (BNUOJ) LCM Sum
    hdu 2665 Kth number 划分树
  • 原文地址:https://www.cnblogs.com/zxcv-/p/7732083.html
Copyright © 2011-2022 走看看