iT邦幫忙

2021 iThome 鐵人賽

DAY 18
1
Software Development

Python 爬蟲這樣學,一定是大拇指拉!系列 第 18

[Python 爬蟲這樣學,一定是大拇指拉!] DAY18 - Python:Requests 基本應用 (1)

實戰演練開始前,稍微來講解一下 Requests 的基本使用,當作是暖身/images/emoticon/emoticon76.gif

用 Requests 送 Request

記不記得之前有提過 HTTP 有不同的 Methods,而這些 Methods 分別對應不同的行為。
Methods??忘記了嗎?傳送門在此!

如果使用 Requests 套件要怎麼使用這些 Methods 來送出 HTTP Request 呢!?其實非常簡單。
範例如下:

  • GET

    import requests
    
    url = "https://www.example.com" # 舉例用 url
    req_query = {"key1": "value1", "key2": ["value2", "value3"]}
    
    r = requests.get(url, params=req_query)
    
    

    有設定 query 組出來的 URL 會是這樣:

    https://www.example.com?key1=value1&key2=value2&key2=value3
    

    requests.get 的 params 就是 URL 中的 query。任何 URL 都可以擁有 query,所以 params 這個參數,不限於只能在 requests.get 這個 function 中使用
    query?之前介紹的已經忘記了嗎?沒關係,在此附上傳送門

  • POST

    import requests
    
    url = "https://www.example.com" # 舉例用 url
    req_data = {"key":"value"}
    
    r = requests.post(url, data=req_data)
    
    

    data 這個參數就是將指定的資料包裝進 HTTP Message 的 Body 裡面。
    這邊要注意 data 的預設資料格式是 form,如果該 URL 只吃 JSON 的話要改成:

    # 方法1:自己轉(記得要先 import json)
    r = requests.post(url, data=json.dumps(req_data))
    
    # 方法2:使用內建參數,直接代入
    r = requests.post(url, json=req_data)
    
    

    更詳細的講解可參考官方文件 - More complicated POST requests

  • PUT
    使用方法與 POST 雷同。

    import requests
    
    url = "https://www.example.com" # 舉例用 url
    req_data = {"key":"value"}
    
    r = requests.put(url, data=req_data)
    
    
  • PATCH
    使用方法與 POST 雷同。

    import requests
    
    url = "https://www.example.com" # 舉例用 url
    req_data = {"key":"value"}
    
    r = requests.patch(url, data=req_data)
    
    
  • DELETE

    import requests
    
    url = "https://www.example.com" # 舉例用 url
    
    r = requests.delete(url)
    
    

    另外很少用到的 HEAD、OPTIONS 也有提供 function 操作:

    import requests
    
    url = "https://www.example.com" # 舉例用 url
    
    r = requests.head(url)
    r = requests.options(url)
    
    

以上就是 Requests 套件,傳送 HTTP Request 的方法,下一篇將介紹如何透過 Requests 存取 HTTP Response。

更多範例可以參考官方文件 - Make a Request


上一篇
[Python 爬蟲這樣學,一定是大拇指拉!] DAY17 - 爬蟲事前準備
下一篇
[Python 爬蟲這樣學,一定是大拇指拉!] DAY19 - Python:Requests 基本應用 (2)
系列文
Python 爬蟲這樣學,一定是大拇指拉!30

尚未有邦友留言

立即登入留言