实例演示
以登录网易云音乐为例
分两步走
获取cookies
from selenium import webdriver
from pprint import pprint
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://music.163.com/')
driver.delete_all_cookies() # 此处只是演示api,可以不写的
input('请扫码登录...')
pprint(driver.get_cookies())
注意,执行效果是打开网站后,会等待用户操作
你要先点击登录
再扫码
然后在控制台即可回车继续执行你的代码pprint(driver.get_cookies())
得到 的结果类似如下,是一个List[dict...]的形式,内容非常长
[{'domain': '.music.163.com',
'expiry': 1732331299,
'httpOnly': False,
'name': 'ntes_kaola_ad',
'path': '/',
'sameSite': 'Lax',
'secure': False,
'value': '1'},
{'domain': '.music.163.com',
'expiry': 1732331299,
'httpOnly': False,
'name': 'WNMCID',
'path': '/',
'sameSite': 'Strict',
'secure': False,
'value': 'knwafe.1697771299228.01.0'},
...]
装入cookies
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://music.163.com/')
all_cookies = [{'domain': '.music.163.com',
'expiry': 1732331299,
'httpOnly': False,
'name': 'ntes_kaola_ad',
'path': '/',
'sameSite': 'Lax',
'secure': False,
'value': '1'},
{'domain': '.music.163.com',
'expiry': 1732331299,
'httpOnly': False,
'name': 'WNMCID',
'path': '/',
'sameSite': 'Strict',
'secure': False,
'value': 'knwafe.1697771299228.01.0'},
...(此处省略部分)]
for cookie in all_cookies:
driver.add_cookie(cookie)
sleep(2)
driver.get('https://music.163.com/')
值得注意的是
- 你在代码中打开了2次网站,第一次是没有登录的状态,cookies装入后就显示为登录了
- cookies具有时效性,过了自然就不可以登录了
cookie相关操作
方法 | 说明 |
---|---|
add_cookie(self,cookie_dict) | 添加某个cookie,dict形式 |
delete_all_cookies(self) | 删除所有的cookie |
delete_cookie(self,name) | 删除某个cookie |
get_cookie(self,name) | 获取cookie中某个name的值 |
get_cookies(self) | 获取所有的cookies,List[dict]形式 |
说在最后
从效果上看,如果是登录更推荐用options结合user-data去绕过,cookies多少有点勉强
标签:cookies,False,get,selenium,driver,谈谈,cookie,music.163 From: https://www.cnblogs.com/wuxianfeng023/p/17776861.html