Python爬取b站视频:验证cookie是否有效
具体代码
import requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0','Referer': 'https://www.bilibili.com/','Origin': 'https://www.bilibili.com'
}
def readCookie(cookie_path):with open(cookie_path, 'r', encoding='utf-8') as f:cookies = f.readline()if not cookies.strip(): # 使用 strip() 去除可能的前后空白字符,然后检查是否为空raise ValueError(f"The file {cookie_path} is empty.")print(cookies)return eval(cookies)# cookies = {'DedeUserID': '691902317', 'DedeUserID__ckMd5': 'ead312019baad7ed', 'SESSDATA': '82611685%2C1732125488%2C08de4%2A51CjAWnKN6v5XukJgYOlSquLA9CHJuky9crpA4V6c8XxY5PZMT5DDIe2qkcj_1xHGTxB4SVm5jNG9icEY0OFNncW9zUEQ5ZGxfYVdkdmUxTHlZX0RGekxISG5DU2VnRHplb0hoTGZZRnZ1WDlTRFdsdW1pN0d6SlA1MF84T0NLLURVOHpOdDNVaXZnIIEC', 'b_nut': '1716573488', 'bili_jct': '9957cab1d8ad41d294ebb0bd034903e4', 'buvid3': 'CCED0FB6-0018-2404-653E-1689622BBB2A88459infoc', 'sid': 'ohm0xv7e'}
cookies = readCookie('cookies.txt')
# 发送HTTP请求获取登录状态信息
login_url = requests.get("https://api.bilibili.com/x/web-interface/nav", headers=headers, cookies=cookies).json()
# 判断登录状态
if login_url['code'] == 0:# 如果登录状态码为0,则表示登录成功print(f"Cookies值有效, {login_url['data']['uname']}, 已登录!")
else:# 如果登录状态码不为0,则表示登录失败print('Cookies值已经失效,请重新扫码登录!')
这个代码,就是验证你cookie是否有效,比如过了一段时间(b站的cookie有效时间还是挺长的)。
这个代码,搭配我前文说的获取cookie,以及过一段时间验证cookie的有效性。