requests模塊--python發送http請求


requests模塊

        在Python內置模塊(urllib、urllib2、httplib)的基礎上進行了高度的封裝,從而使得Pythoner更好的進行http請求,使用Requests可以輕而易舉的完成瀏覽器可有的任何操作。Requests 是使用 Apache2 Licensed 許可證的 基於Python開發的HTTP 庫。


requests使用

一、GET請求

向 https://github.com/timeline.json 發送一個GET請求,將請求和響應相關均封裝在 ret 對象中。

1、無參數實例

1
2
3
4
5
6
import requests
   
ret = requests.get( ' https://github.com/timeline.json' )
   
print ret.url
print ret.text

2、有參數實例

1
2
3
4
5
6
7
import requests
   
payload = { 'key1' : 'value1' , 'key2' : 'value2' }
ret = requests.get( " http://httpbin.org/get" , params = payload)
   
print ret.url
print ret.text

二、POST請求

向https://api.github.com/some/endpoint發送一個POST請求,將請求和相應相關的內容封裝在 ret 對象中。

1、基本POST實例

1
2
3
4
5
6
import requests
   
payload = { 'key1' : 'value1' , 'key2' : 'value2' }
ret = requests.post( " http://httpbin.org/post" , data = payload)
   
print ret.text


2、發送請求頭和數據實例

1
2
3
4
5
6
7
8
9
10
11
import requests
import json
   
payload = { 'some' : 'data' }
headers = { 'content-type' : 'application/json' }
   
ret = requests.post(url, data = json.dumps(payload), headers = headers)
   
print ret.text
print ret.cookies


3、其他請求

1
2
3
4
5
6
7
8
9
10
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)


更多參數

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
def request(method, url, * * kwargs):
     """Constructs and sends a :class:`Request <Request>`.
 
     :param method: method for the new :class:`Request` object.
     :param url: URL for the new :class:`Request` object.
     :param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`.
     :param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`.
     :param json: (optional) json data to send in the body of the :class:`Request`.
     :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
     :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
     :param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': ('filename', fileobj)}``) for multipart encoding upload.
     :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
     :param timeout: (optional) How long to wait for the server to send data
         before giving up, as a float, or a :ref:`(connect timeout, read
         timeout) <timeouts>` tuple.
     :type timeout: float or tuple
     :param allow_redirects: (optional) Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.
     :type allow_redirects: bool
     :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
     :param verify: (optional) whether the SSL cert will be verified. A CA_BUNDLE path can also be provided. Defaults to ``True``.
     :param stream: (optional) if ``False``, the response content will be immediately downloaded.
     :param cert: (optional) if String, path to ssl client cert file (.pem). If Tuple, ('cert', 'key') pair.
     :return: :class:`Response <Response>` object
     :rtype: requests.Response
 
     Usage::
 
       >>> import requests
       >>> req = requests.request('GET', ' http://httpbin.org/get')
       <Response [200]>
     """
 
     # By using the 'with' statement we are sure the session is closed, thus we
     # avoid leaving sockets open which can trigger a ResourceWarning in some
     # cases, and look like a memory leak in others.
     with sessions.Session() as session:
         return session.request(method = method, url = url, * * kwargs)

更多詳細資料

更多requests模塊相關的​文檔見:http://cn.python-requests.org/zh_CN/latest/


















免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM