selenium 获取登录 cookie,保存,登录
https://www.cnblogs.com/CYHISTW/p/11685846.html
# 保存 ckkie
from selenium import webdriver
import time
import json
driver = webdriver.Chrome()
driver.get('登录页面网址')
# 程序打开网页后20秒内手动登陆账户
time.sleep(30)
with open('cookies.txt', 'w') as cookief:
# 将cookies保存为json格式
cookief.write(json.dumps(driver.get_cookies()))
driver.close()
'''
添加cookie
'''
# 打开 url
driver.get('登录页url')
# 首先清除由于浏览器打开已有的cookies
driver.delete_all_cookies()
with open('cookies.txt', 'r') as cookief:
# 使用json读取cookies 注意读取的是文件 所以用load而不是loads
cookieslist = json.load(cookief)
for cookie in cookieslist:
# 该字段有问题所以删除就可以 浏览器打开后记得刷新页面 有的网页注入cookie后仍需要刷新一下
if 'expiry' in cookie:
del cookie['expiry']
driver.add_cookie(cookie)
# 记得写完整的url 包括http和https
driver.get('爬取的url')
# 等待页面加载出来
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'ant-form-item-children')))
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: invalid 'expiry'
添加 cookie 报的错
https://www.cnblogs.com/CYHISTW/p/11685846.html
selenium.common.exceptions.InvalidCookieDomainException: Message: Document is cookie-averse
添加 cookie 后,访问需要登录的网站,出现这个报错,在访问登录后的网页前,最开始需要打开登录页的 url
https://www.cnblogs.com/mrwuzs/p/11807229.html
requests 获取 cookie ,selenium 登录
登录知乎:https://www.zhihu.com/question/28569874
参考代码:https://www.codenong.com/cs109692251/
以登录知乎为例,先用别人开发的第三方工具登录知乎,获取 cookies,再使用 selenium 打开
from DecryptLogin import login
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import json
from selenium import webdriver
# 知乎登录获取 cookies
lg = login.Login()
infos_return, session = lg.zhihu('13532287396', 'zjk12345', 'pc')
cookies = session.cookies
# selenium 使用 cookies
webapi = webdriver.Chrome()
webapi.get('https://www.zhihu.com/signin?next=%2F')
webapi.implicitly_wait(10) #全局等待10min
webapi.delete_all_cookies() #删除selenium侧的所有cookies
for k,v in session.cookies.items(): #获取requests侧的cookies
webapi.add_cookie({'name':k,'value':v}) #向selenium侧传入以requests侧cookies的name为键value为值的字典
webapi.get('https://www.zhihu.com/')
pass