登陆一次b站获取cookie免登陆登陆b站

selenium模块练习,爬虫初学。

先获取cookie保存到cookies.txt文件中:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from time import sleep
import json

s = Service("../chromedriver.exe")
bro = webdriver.Chrome(service=s)
#打开b站
bro.get('https://www.bilibili.com/video/BV1Yh411o7Sz/?p=77&spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=763026b3fd930918486c9b0c9858abdc')
sleep(2)

#关掉弹幕
bro.find_element(By.CLASS_NAME,'bui-danmaku-switch-input').click()
sleep(2)

#点击登陆
bro.find_element(By.XPATH,'//*[@id="biliMainHeader"]/div/div/ul[2]/li[1]/li/div/div').click()

#切换进账号输入界面,将xxx 和 yyy 改成你的账号和密码
sleep(5)
bro.find_element(By.XPATH,'/html/body/div[4]/div/div[2]/div[3]/div[2]/div[1]/input').send_keys('xxx')
bro.find_element(By.XPATH,'/html/body/div[4]/div/div[2]/div[3]/div[2]/div[2]/div[1]/input').send_keys('yyy')
bro.find_element(By.XPATH,'/html/body/div[4]/div/div[2]/div[3]/div[3]/div[2]').click()

bro.delete_all_cookies()#先删除cookies

#60秒时间留你进行登陆
sleep(60)
dictcookies = bro.get_cookies()#读取登录之后浏览器的cookies
jsoncookies = json.dumps(dictcookies)#将字典数据转成json数据便于保存

#生成cookies.txt文件
with open('cookies.txt','w') as f:#写进文本保存
    f.write(jsoncookies)
print('cookies is ok')

再添加cookie到请求头内并进行登陆:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import json

s = Service("../chromedriver.exe")
web = webdriver.Chrome(service=s)
web.get('https://www.bilibili.com/video/BV1Yh411o7Sz/?p=77&spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=763026b3fd930918486c9b0c9858abdc')
f = open('cookies.txt','r')
listcookie = json.loads(f.read())#读取文件中的cookies数据
for cookie in listcookie:
    web.add_cookie(cookie)#将cookies数据添加到浏览器
web.refresh()#刷新网页
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值