国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python Requests使用Cookie的幾種方式

這篇具有很好參考價(jià)值的文章主要介紹了Python Requests使用Cookie的幾種方式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

這篇文章將總結(jié) Python Requests庫(kù)中接口請(qǐng)求時(shí)使用Cookie的幾種方式,文章使用 Postman 官網(wǎng)提供的接口進(jìn)行演示 https://postman-echo.com

一、通過headers參數(shù)使用

通過headers參數(shù)使用cookie,key為Cookie,值為使用;拼接的 cookie_name=cookie_value 字符串

import requests

get_url = "https://postman-echo.com/get"
# key為Cookie,值為使用;拼接的 cookie_name=cookie_value 字符串
headers = {"Cookie":"cka=111a;ckb=111b"}

res = requests.get(url=get_url,headers=headers)

print(res.json().get("headers").get("cookie"))
print(res.request.headers.get("Cookie"))

輸出如下:

cka=111a;ckb=111b
cka=111a;ckb=111b

二、通過cookies參數(shù)使用

通過cookies參數(shù)使用cookie,cookies 值以字典形式提供,key為cookie_name,value為cookie_value

import requests

get_url = "https://postman-echo.com/get"
# cookies 以字典形式提供,cookies 值以字典形式提供,key為cookie_name,value為cookie_value
cookies = {"cka":"222a","ckb":"222b"}

res = requests.get(url=get_url,cookies=cookies)

print(res.json().get("headers").get("cookie"))
print(res.request.headers.get("Cookie"))

輸出:

cka=222a; ckb=222b
cka=222a; ckb=222b

注意:同時(shí)通過headers,cookies 參數(shù)傳遞Cookie時(shí),只有headers傳遞的Cookie有效。

三、通過Session會(huì)話使用

通過Session會(huì)話管理Cookie,同一會(huì)話的多個(gè)請(qǐng)求可共享Cookie;
在Session中添加Cookie又有多種方式

方式0:自動(dòng)設(shè)置

在會(huì)話過程中,如果有接口響應(yīng)頭中有 set-cookie,則將自動(dòng)添加到會(huì)話的Cookie中

import requests

session = requests.session()
print("會(huì)話初始cookie:",dict(session.cookies))

get_url = "https://postman-echo.com/get"
res = session.get(url=get_url)

print("響應(yīng)頭中set-cookie:",res.headers.get("set-cookie"))
print("會(huì)話現(xiàn)有cookie:",dict(session.cookies))

輸出:

會(huì)話初始cookie: {}
響應(yīng)頭中set-cookie: sails.sid=s%3ALo1-iQfueg8z1DhR_SX3KxwWA85cYN65.asZ1elFlT9g54uj%2FHkHpaZFkk0rBaCFDtRrA9anWzY4; Path=/; HttpOnly
會(huì)話現(xiàn)有cookie: {'sails.sid': 's%3ALo1-iQfueg8z1DhR_SX3KxwWA85cYN65.asZ1elFlT9g54uj%2FHkHpaZFkk0rBaCFDtRrA9anWzY4'}

方式1:通過key設(shè)置

直接通過key設(shè)置cookie,但不支持設(shè)置cookie的 path、domain 等值

import requests

session = requests.session()
print("會(huì)話初始cookie:",dict(session.cookies))

# 直接通過key設(shè)置cookie,但不支持設(shè)置cookie的 path、domain 等值
session.cookies["cka"]="111a"
session.cookies["ckb"]="111b"

get_url = "https://postman-echo.com/get"
res = session.get(url=get_url)

print("本次請(qǐng)求使用的cookie:",res.request.headers.get("Cookie"))
print("會(huì)話現(xiàn)有cookie:",dict(session.cookies))

輸出:

會(huì)話初始cookie: {}
本次請(qǐng)求使用的cookie: cka=111a; ckb=111b
會(huì)話現(xiàn)有cookie: {'cka': '111a', 'ckb': '111b', 'sails.sid': 's%3AxtcEChogQfCYrRm9HDwAOFa4VlQQDsCZ.OR1TBpmuhX%2F2qI7mpTE0NdChrphD5AUcvcRqUF2y6NU'}

方式2:通過set 方法設(shè)置

通過set方法設(shè)置cookie,且支持設(shè)置path、domain等值

import requests

session = requests.session()
print("會(huì)話初始cookie:",dict(session.cookies))

# 通過set方法設(shè)置cookie,且支持設(shè)置path、domain等值
session.cookies.set("ck2","222",path="/",domain="postman-echo.com")

get_url = "https://postman-echo.com/get"
res = session.get(url=get_url)

print("本次請(qǐng)求使用的cookie:",res.request.headers.get("Cookie"))
print("會(huì)話現(xiàn)有cookie:",session.cookies)

輸出:

會(huì)話初始cookie: {}
本次請(qǐng)求使用的cookie: ck2=222
會(huì)話現(xiàn)有cookie: <RequestsCookieJar[<Cookie ck2=222 for postman-echo.com/>, <Cookie sails.sid=s%3AZW2JtlIjc1m9D2vVrn1Io57gVB6lVQiK.SjYcItCh92iqDkVF7oI8C6q5P8KmQ5DwB%2BiD4A6Ag48 for postman-echo.com/>]>

注意:<Cookie ck2=222 for postman-echo.com/> 可以看出 設(shè)置的 path、domain 成功了

方式3:通過 add_dict_to_cookiejar 方法設(shè)置

通過 requests.utils 工具包里的 add_dict_to_cookiejar 方法設(shè)置cookie,但不支持設(shè)置 path、domain 等值

import requests

session = requests.session()
print("會(huì)話初始cookie:",dict(session.cookies))

# 通過 requests.utils 工具包里的 add_dict_to_cookiejar 方法設(shè)置cookie,但不支持設(shè)置 path、domain 等值
cookie_dict = {"ck3a":"333a","ck3b":"333b"}
requests.utils.add_dict_to_cookiejar(session.cookies,cookie_dict=cookie_dict)

get_url = "https://postman-echo.com/get"
res = session.get(url=get_url)

print("本次請(qǐng)求使用的cookie:",res.request.headers.get("Cookie"))
print("會(huì)話現(xiàn)有cookie:",dict(session.cookies))

輸出:

會(huì)話初始cookie: {}
本次請(qǐng)求使用的cookie: ck3a=333a; ck3b=333b
會(huì)話現(xiàn)有cookie: {'ck3a': '333a', 'ck3b': '333b', 'sails.sid': 's%3AFY_7nq-hA_v9BxPaft4BHgRNiZOmDZ1S.N64IaIZ2Dd2fnfDMawbXdmJl0HfUVN7hhhGrdaFE4Bs'}

方式4:通過 RequestsCookieJar() 對(duì)象設(shè)置

創(chuàng)建一個(gè)空 RequestsCookieJar()對(duì)象,然后使用對(duì)象的set方法賦值,然后update更新到當(dāng)前會(huì)話cookie,支持設(shè)置 path、domain等值

import requests

session = requests.session()
print("會(huì)話初始cookie:",dict(session.cookies))

# 創(chuàng)建一個(gè)空 RequestsCookieJar()對(duì)象,然后使用對(duì)象的set方法賦值,然后update更新到當(dāng)前會(huì)話cookie,支持設(shè)置 path、domain等值
ckj = requests.sessions.RequestsCookieJar()
ckj.set('ck4a', '444a', path='/', domain='postman-echo.com')
session.cookies.update(ckj)

get_url = "https://postman-echo.com/get"
res = session.get(url=get_url)

print("本次請(qǐng)求使用的cookie:",res.request.headers.get("Cookie"))
print("會(huì)話現(xiàn)有cookie:",dict(session.cookies))

輸出:

會(huì)話初始cookie: {}
本次請(qǐng)求使用的cookie: ck4a=444a
會(huì)話現(xiàn)有cookie: {'ck4a': '444a', 'sails.sid': 's%3ANU88BiSVQAFpVUtrvSrii14jOhO_q981.MfJkY7Aw93R0Rc4V6JGi7SXPOneNJTr3p%2FNVJ9yp4Qg'}

方式5:通過 cookiejar_from_dict 方法設(shè)置

通過 requests.utils 工具包里的 cookiejar_from_dict 方法將字典格式的cookie轉(zhuǎn)換為cookiejar對(duì)象,然后update更新到當(dāng)前會(huì)話,不支持設(shè)置 path、domain 等值

import requests

session = requests.session()
print("會(huì)話初始cookie:",dict(session.cookies))

# 通過 requests.utils 工具包里的 cookiejar_from_dict 方法將字典格式的cookie轉(zhuǎn)換為cookiejar對(duì)象,然后update更新到當(dāng)前會(huì)話,不支持設(shè)置 path、domain 等值
cookie_dict = {"ck5a":"555a","ck5b":"555b"}
ckj5 = requests.utils.cookiejar_from_dict(cookie_dict=cookie_dict)
session.cookies.update(ckj5)

get_url = "https://postman-echo.com/get"
res = session.get(url=get_url)

print("本次請(qǐng)求使用的cookie:",res.request.headers.get("Cookie"))
print("會(huì)話現(xiàn)有cookie:",dict(session.cookies))

輸出:文章來源地址http://www.zghlxwxcb.cn/news/detail-549570.html

會(huì)話初始cookie: {}
本次請(qǐng)求使用的cookie: ck5a=555a; ck5b=555b
會(huì)話現(xiàn)有cookie: {'ck5a': '555a', 'ck5b': '555b', 'sails.sid': 's%3AWHa__ab1vTZVjGdlIpDgDFfntSYNqS2Y.y%2Fq4YhPv49C5jwNiYdVWrFsQm9B0Y202rI5xRrqlwsk'}

到了這里,關(guān)于Python Requests使用Cookie的幾種方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python 打開網(wǎng)頁(yè)的幾種方式

    方法1:直接調(diào)用系統(tǒng)命令 os 方法2:引用webrowser包 方法3:引用selenium工具,解決閃退問題 附:Pycharm 安裝selenium 工具說明

    2024年02月16日
    瀏覽(24)
  • python數(shù)組循環(huán)的幾種方式

    ?Python中循環(huán)數(shù)組有幾種方式: for-in循環(huán),可以遍歷數(shù)組中的每一個(gè)元素。 while循環(huán),使用索引進(jìn)行循環(huán)。 列表推導(dǎo)式,可以快速創(chuàng)建新的列表。 遞歸,可以遍歷多維數(shù)組。 enumerate() 函數(shù),在循環(huán)中同時(shí)獲取索引和元素

    2024年02月16日
    瀏覽(24)
  • Python保存圖像的幾種方式

    記錄讀取和保存圖像的幾種方式 1.1、使用 cv2 讀取圖片,注意:opencv打開路徑中不能有中文?。?! 1.2、使用 rasterio 讀取遙感影像 1.3、使用 Image 讀取圖像 2.1、使用 cv2 保存圖片 2.2、使用numpy保存 2.3、使用plt保存 參考: https://blog.csdn.net/xzm961226xzm/article/details/120951317 https://bl

    2024年02月11日
    瀏覽(23)
  • python使用requests時(shí)報(bào)錯(cuò)requests.exceptions.SSLError:HTTPSConnectionPool

    requests.exceptions.SSLError: HTTPSConnectionPool(host=\\\' www.baidu.com \\\', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, u\\\'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)\\\'),)) 錯(cuò)誤提示就是上面這樣的。首先我找了很多的資料,有很多人說關(guān)閉證書驗(yàn)證(verify=False))可以解決

    2024年02月06日
    瀏覽(26)
  • python中進(jìn)程的幾種創(chuàng)建方式

    在新創(chuàng)建的子進(jìn)程中,會(huì)把父進(jìn)程的所有信息復(fù)制一份,它們之間的數(shù)據(jù)互不影響。 該方式只能用于Unix/Linux操作系統(tǒng)中,在windows不能用。 multiprocessing模塊提供了一個(gè)Process類來代表一個(gè)進(jìn)程對(duì)象,下面的例子演示了啟動(dòng)一個(gè)子進(jìn)程并等待其結(jié)束: join()方法表示主進(jìn)程等待子

    2024年02月11日
    瀏覽(90)
  • python - 線程的啟動(dòng)的幾種方式

    本文主要給大家介紹python啟動(dòng)線程的四種方式 創(chuàng)建 Thread 對(duì)象,然后調(diào)用 start() 方法啟動(dòng)線程。 重寫 run() 方法,并調(diào)用 start() 方法啟動(dòng)線程。 使用ThreadPoolExecutor 類的 submit() 方法提交任務(wù),自動(dòng)創(chuàng)建線程池并執(zhí)行任務(wù)。 創(chuàng)建進(jìn)程,然后在進(jìn)程中啟動(dòng)線程。 以上就是python中啟

    2024年02月12日
    瀏覽(21)
  • 運(yùn)行 Python 腳本/代碼的幾種方式

    運(yùn)行 Python 腳本/代碼的幾種方式

    哈嘍大家好,我是咸魚 我們知道,python 腳本或者說 python 程序其實(shí)是一個(gè)包含了 python 代碼的文件。要讓它們實(shí)現(xiàn)特定功能,我們需要知道該如何運(yùn)行(run)它 通過運(yùn)行 python 代碼,我們可以驗(yàn)證腳本/程序是否按照我們的期望執(zhí)行。這也使我們能夠?qū)ζ溥M(jìn)行測(cè)試和調(diào)試,以便

    2024年02月08日
    瀏覽(18)
  • python中導(dǎo)入模塊/包的幾種方式

    一、模塊的導(dǎo)入方式 模塊就是.py類型的Python文件 導(dǎo)入時(shí)不需要.py后綴,直接導(dǎo)入文件名即可 1.利用import直接導(dǎo)入: 語(yǔ)法:import module_name 使用方式:module_name.class_name或者module.func_name 2.利用import導(dǎo)入模塊并設(shè)置一個(gè)別名 語(yǔ)法:import module_name as XXX 使用方式:XXX.class_name或者X

    2024年01月22日
    瀏覽(25)
  • python創(chuàng)建虛擬環(huán)境的幾種方式

    python創(chuàng)建虛擬環(huán)境的幾種方式

    venv是Python的虛擬環(huán)境管理工具,它可以創(chuàng)建獨(dú)立的Python環(huán)境,讓不同項(xiàng)目使用不同的Python版本和依賴庫(kù),避免版本沖突和依賴沖突問題。使用Python venv可以方便地創(chuàng)建、激活、退出、刪除虛擬環(huán)境,以及在虛擬環(huán)境中安裝、升級(jí)、卸載包等操作。 ? 以下是使用Venv創(chuàng)建和管理

    2024年02月02日
    瀏覽(30)
  • Python requests庫(kù)使用詳解

    今天繼續(xù)給大家介紹Python 爬蟲相關(guān)知識(shí),本文主要內(nèi)容是Python requests庫(kù)使用詳解。 requests庫(kù)是一個(gè)非常好用的HTTP請(qǐng)求庫(kù),常用于寫網(wǎng)絡(luò)請(qǐng)求和爬蟲程序。相比于之前的urllib庫(kù)。,requests操作非常簡(jiǎn)介。 requests庫(kù)是Python的一個(gè)第三方庫(kù),因此要使用該庫(kù)需要我們手動(dòng)安裝,執(zhí)行

    2024年02月14日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包