2024 一天掌握python爬蟲【基礎(chǔ)篇】 涵蓋 requests、beautifulsoup、selenium:
https://www.bilibili.com/video/BV1Ju4y1Y7k6/
在某些需要登錄的網(wǎng)站或者或者應(yīng)用,假如我們需要抓取登錄后的內(nèi)容,技術(shù)上本質(zhì)通過session會話實現(xiàn)。服務(wù)器端存會話信息,瀏覽器通過Cookie攜帶客戶端訪問用戶信息,來實現(xiàn)會話機制。
requests對Cookie有很好的支持。
我們看一個實例。
這個網(wǎng)站,假如需要看抓取登錄后的用戶下載的資源信息
http://download.java1234.com/user/userDownload/list/1
這時候的思路是先post方式登錄系統(tǒng),獲取返回的cookie,然后我們帶上cookie再請求用戶下載資源信息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)