[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


<<:  Vue.js 从零开始:元件

>>:  Day 18 终於写了一个测Provider的最初版

[DAY 24]Embed功能

今天主要是来介绍一下文字嵌入(Embed)这功能 如果想要在讯息里使用mark down功能的话需要...

App 测试技能树

-常用IDE - iOS - Xcode - Common - Atom - Sublime Tex...

Day4 Sideproject(作品集) from 0 to 1 -题目决定过程

我们当初是先决定题目才开始想要用什麽技术做的 最开始其实有想了两三个 有关於区块链的 ai的等等一些...

更新网格机器人和策略回测

Gridbot: 1.debugmode的检查新增部位超过上限的部分 2.针对凌晨时段交割金和帐户余...

Day 28 Heroku Docker

跑范例环节 https://devcenter.heroku.com/articles/contai...