日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

4、requests-基础

發布時間:2023/12/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 4、requests-基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、發出一個get請求:

r = requests.get('https://github.com/timeline.json')

返回給我們的r,是一個requets的對象,這個requests的對象中我們可以調用一些屬性,方便我們得到更加詳細的信息;

r.status_code # 響應狀態碼 r.content # 字節方式的響應體,會自動為你解碼 gzip 和 deflate 壓縮 r.headers # 以字典對象存儲服務器響應頭,但是這個字典比較特殊,字典鍵不區分大小寫,若鍵不存在則返回None r.json # Requests中內置的JSON解碼器 r.url # 獲取url r.encoding # 編碼格式 r.cookies # 獲取cookie r.raw # 返回原始響應體 r.text # 字符串方式的響應體,會自動根據響應頭部的字符編碼進行解碼 r.raise_for_status() # 失敗請求(非200響應)拋出異常

同時,get方法可以接受參數:

# -*- coding:utf-8 -*-import requests
# 字典的形式填充參數 params
= {'k1': 'v1', 'k2': 'v2'} r = requests.get('http://www.baidu.com', params=params)

get請求,是將參數添加到url上:

http://www.baidu.com/?k2=v2&k1=v1

同時你也可以把列表當做字典的值傳到url中:

params = {'k1': 'v1', 'k2': ['v2', 'v3', 'v4']}r = requests.get('http://www.baidu.com', params=params)

#得到的url:http://www.baidu.com/?k2=v2&k2=v3&k2=v4&k1=v1

添加請求頭:

params = {'k1': 'v1', 'k2': ['v2', 'v3', 'v4']} header = {'k1': 'v1', 'k2': 'v2'}r = requests.get('http://www.baidu.com', params=params, headers=header)

2、發起一個post的請求:

import requestsparams = {'k1': 'v1', 'k2': ['v2', 'v3', 'v4']} header = {'k1': 'v1', 'k2': 'v2'}r = requests.post('http://httpbin.org/post', data=params, headers=header)

當然我們可以使用post傳遞json文件:

import requests import jsonparams = {'k1': 'v1', 'k2': ['v2', 'v3', 'v4']} header = {'k1': 'v1', 'k2': 'v2'}
# 使用json庫,序列化python數據類型為json字符串 json_data
= json.dumps(params)r = requests.post('http://httpbin.org/post', data=json_data, headers=header)

除了對dict進行編碼后傳遞,還可以json參數直接進行傳遞,它會自動幫我進行編碼:

params = {'k1': 'v1', 'k2': ['v2', 'v3', 'v4']} header = {'k1': 'v1', 'k2': 'v2'} json_data = json.dumps(params) # 使用json參數傳遞參數,傳遞之前會先進行序列化 r = requests.post('http://httpbin.org/post', json=params, headers=header)

設置超時時間:

timeout?僅對連接過程有效,與響應體的下載無關。?timeout?并不是整個下載響應的時間限制,而是如果服務器在?timeout?秒內沒有應答,將會引發一個異常(更精確地說,是在timeout?秒內沒有從基礎套接字上接收到任何字節的數據時)

?

轉載于:https://www.cnblogs.com/liyu2151/p/7132735.html

總結

以上是生活随笔為你收集整理的4、requests-基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。