美文网首页
Python requests 使用手册

Python requests 使用手册

作者: 华阳_3bcf | 来源:发表于2023-04-10 14:33 被阅读0次

    Python 内置了 requests 模块,该模块主要用来发 送 HTTP 请求,requests 模块比 urllib 模块更简洁。

    语法:

    requests.methodname(params)
    

    方法

    Method Description
    delete(url, args) Sends a DELETE request to the specified url
    get(url, params, args) Sends a GET request to the specified url
    head(url, args) Sends a HEAD request to the specified url
    patch(url, data, args) Sends a PATCH request to the specified url
    post(url, data, json, args) Sends a POST request to the specified url
    put(url, data, args) Sends a PUT request to the specified url
    request(method, url, args) Sends a request of the specified method to the specified url

    例如

     # 导入 requests 包
    import requests
    
    url = "http://httpbin.org"
     # 发送请求
    x = requests.get(url)
     
     # 返回 http 的状态码
    print(x.status_code)
    
    # 响应状态的描述
    print(x.reason)
    
    # 返回编码
    print(x.apparent_encoding)
    

    输出结果如下:

    200
    OK
    Windows-1252
    

    对于带参数的URL,传入一个dict作为params参数:

    结果是改变 url -> url + ?key=value

    >>> url = "http://httpbin.org/get" 
    >>> params = { "key1": "value1", "key2": "value2"}
    >>> y = requests.get(url, params = params)
    >>> print(y.url)
    http://httpbin.org/get?key1=value1&key2=value2
    
    

    添加 headers

    >>> headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
    >>> url = 'https://www.douban.com/'
    >>> r = requests.get(url, headers=headers)
    >>> print(r.status_code)
    200
    

    具体的属性和方法可以参考这里:Python requests.Response Object (w3schools.com)

    如果是 post:

    >>> url = "http://httpbin.org/post"
    >>> payload = {"name": "roy", "age": "80"}
    >>> r = requests.post(url, data = payload)
    >>> print(r.reason)
    OK
    
    >>> import requests
    >>> r = requests.get('https://httpbin.org/basic-auth/user/pass', auth=('user', 'pass'))
    >>> r.status_code
    200
    >>> r.headers['content-type']
    'application/json'
    >>> r.headers
    {'Date': 'Fri, 28 Oct 2022 01:36:58 GMT', 'Content-Type': 'application/json', 'Content-Length': '47', 'Connection': 'keep-alive', 'Server': 'gunicorn/19.9.0', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Credentials': 'true'}
    >>> r.encoding
    >>> r.text
    '{\n  "authenticated": true, \n  "user": "user"\n}\n'
    >>> r.json()
    {'authenticated': True, 'user': 'user'}
    >>>
    
    

    Python Requests get() Method

    The get() method sends a GET request to the specified url.


    Syntax

    requests.get(url, params={"key": "value"}, args)
    

    args means zero or more of the named arguments in the parameter table below. Example:

    requests.get(url, timeout=2.50)
    

    Parameter Values

    Parameter Description
    url Required. The url of the request
    params Optional. A dictionary, list of tuples or bytes to send as a query string. Default None
    allow_redirects Optional. A Boolean to enable/disable redirection. Default True (allowing redirects)
    auth Optional. A tuple to enable a certain HTTP authentication. Default None
    cert Optional. A String or Tuple specifying a cert file or key. Default None
    cookies Optional. A dictionary of cookies to send to the specified url. Default None
    headers Optional. A dictionary of HTTP headers to send to the specified url. Default None
    proxies Optional. A dictionary of the protocol to the proxy url. Default None
    stream Optional. A Boolean indication if the response should be immediately downloaded (False) or streamed (True). Default False
    timeout Optional. A number, or a tuple, indicating how many seconds to wait for the client to make a connection and/or send a response. Default None which means the request will continue until the connection is closed
    verify Optional. A Boolean or a String indication to verify the servers TLS certificate or not. Default True

    Return Value

    The get() method returns a requests.Response object.

    Python Requests post() Method

    Example

    Make a POST request to a web page, and return the response text:

    import requests
    
    url = 'https://www.w3schools.com/python/demopage.php'
    myobj = {'somekey': 'somevalue'}
    
    x = requests.post(url, json = myobj)
    
    print(x.text)
    

    Definition and Usage

    The post() method sends a POST request to the specified url.

    The post() method is used when you want to send some data to the server.


    Syntax

    requests.post(url, data={"key": "value"}, json={"key": "value"}, args)
    

    args means zero or more of the named arguments in the parameter table below. Example:

    requests.post(url, data = myobj, timeout=2.50)
    

    Parameter Values

    Parameter Description
    url Required. The url of the request
    data Optional. A dictionary, list of tuples, bytes or a file object to send to the specified url
    json Optional. A JSON object to send to the specified url
    files Optional. A dictionary of files to send to the specified url
    allow_redirects Optional. A Boolean to enable/disable redirection. Default True (allowing redirects)
    auth Optional. A tuple to enable a certain HTTP authentication. Default None
    cert Optional. A String or Tuple specifying a cert file or key. Default None
    cookies Optional. A dictionary of cookies to send to the specified url. Default None
    headers Optional. A dictionary of HTTP headers to send to the specified url. Default None
    proxies Optional. A dictionary of the protocol to the proxy url. Default None
    stream Optional. A Boolean indication if the response should be immediately downloaded (False) or streamed (True). Default False
    timeout Optional. A number, or a tuple, indicating how many seconds to wait for the client to make a connection and/or send a response. Default None which means the request will continue until the connection is closed
    verify Optional. A Boolean or a String indication to verify the servers TLS certificate or not. Default True

    Return Value

    A requests.Response object.

    参考:

    官网:Requests: HTTP for Humans™ — Requests 2.28.1 documentation

    https://www.w3schools.com/python/module_requests.asp

    Python requests 模块 | 菜鸟教程 (runoob.com)

    requests - 廖雪峰的官方网站 (liaoxuefeng.com)

    python的requests模块详解 - 马昌伟 - 博客园 (cnblogs.com)

    相关文章

      网友评论

          本文标题:Python requests 使用手册

          本文链接:https://www.haomeiwen.com/subject/llfwddtx.html