Python知識(shí)分享網(wǎng) - 專業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
requests之Cookie
匿名網(wǎng)友發(fā)布于:2023-10-29 20:39:24
(侵權(quán)舉報(bào))

2024 一天掌握python爬蟲【基礎(chǔ)篇】 涵蓋 requests、beautifulsoup、selenium

https://www.bilibili.com/video/BV1Ju4y1Y7k6/

 

在某些需要登錄的網(wǎng)站或者或者應(yīng)用,假如我們需要抓取登錄后的內(nèi)容,技術(shù)上本質(zhì)通過session會(huì)話實(shí)現(xiàn)。服務(wù)器端存會(huì)話信息,瀏覽器通過Cookie攜帶客戶端訪問用戶信息,來(lái)實(shí)現(xiàn)會(huì)話機(jī)制。

requests對(duì)Cookie有很好的支持。

我們看一個(gè)實(shí)例。

http://download.java1234.com/

這個(gè)網(wǎng)站,假如需要看抓取登錄后的用戶下載的資源信息

http://download.java1234.com/user/userDownload/list/1

 

這時(shí)候的思路是先post方式登錄系統(tǒng),獲取返回的cookie,然后我們帶上cookie再請(qǐng)求用戶下載資源信息url。

參考代碼:

import requests

url = "http://download.java1234.com/user/login"

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36'
}

data = {
    'userName': 'python222',
    'password': '123456'
}

r = requests.post(url=url, data=data, headers=headers)

print(r.text)
print(r.headers)
cookieJar = r.cookies
for c in cookieJar:
    print(c.name, c.value)

targetUrl = "http://download.java1234.com/user/userDownload/list/1"

r2 = requests.get(url=targetUrl, headers=headers, cookies=cookieJar)
print(r2.text)

 

轉(zhuǎn)載自: