现在Python到底要怎样获得某一个网站(比如b站)的cookie啊,如果希望用requests这个类实现打开的话?
使用Python requests模块获取网站的cookie可以分为两步
import requests
# 获取登录页面,获取csrf_token
url = 'https://www.bilibili.com/login'
response = requests.get(url)
# 提取csrf_token
csrf = response.text.split('csrf = "')[1].split('";')[0]
# 构造登录请求数据
data = {
'csrf_token': csrf,
'username': 'yourusername',
'password': 'yourpassword'
}
# 登录并获取cookie
response = requests.post(url, data=data)
cookies = response.cookies
# 打印cookie,保存到文件等后续使用
print(cookies)
方式二与方式一都是通过携带Cookie来发请求,方式二直接调用requests的cookies参数,但是要求cookies是一个字典类型,所以要对从网上复制下来的cookie值进行一些处理,cookie中都是键值对的形式,如:
uuid_tt_dd=10_19035893370-1578805336439-452978; dc_session_id=10_1578805336439.387381;
我们要将这样的一串字符串做成字典的形式首先要将它以“; ”分隔,注意两个值直接不仅有;符号,还有一个空格,所以是;+空格。分隔之后得到的格式为:键=值 ,再以=号分隔,取[0]为键,[1]为值,如下:
import requests
cookies="从网上复制的cookie值"
cookies_dict={}
for i in cookies.split("; "):
cookies_dict[i.splict('=')[0]] = i.splict('=')[1]
html=requests.get(url='',cookies=cookies_dict}