python selenium 用cookie登录相关问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Clannad_niu/article/details/85175085

1.用cookie登录的时候遇到了各种问题,首先是构成的cookie不正确问题。这个主要是由于在抓取cookie的过程中由于页面还没有加载完成,抓到的cookie不够完整导致的。

解决方案:使用driver2.implicitly_wait(1)函数等待页面加载完成再抓取cookie 

2.在进行登录的过程中,需要先开启一个driver登录一下网页,告诉selenium使用得到的cookie登录的网站,。然后再并抓取登录的cookie。开启一个driver2,使用driver.delete_all_cookies()清空所有的cookie,再将之前的cookie加入到现有的driver2中进行登录

3. 无报错,可以打开登录页面,但无法正确登录的问题。

解决方案:重要!!!! 在加入新的cookie后,需要调用driver.refresh()函数刷新driver!!!!

4.cookie格式处理问题

完整处理代码如下所示:

from urllib import request
from http import cookiejar
from selenium import webdriver
import time

#cookiestr = ''
 
#cookie = ['pgv_pvi=9815572480','pgv_si=s3522536448']
#cookiestr = ';'.join(item for item in cookie) 

saveCookies = {'name': 'pgv_pvi', 'domain': '.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'expiry': 2147385600, 'value': '5026421760'}, {'name': 'uin', 'domain': '.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': 'o0582655512'}, {'name': 'pgv_si', 'domain': '.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': 's7266725888'}, {'name': 'skey', 'domain': '.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': '@IFIMyL7QD'}, {'name': 'p_uin', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': 'o0582655512'}, {'name': 'pt2gguin', 'domain': '.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'expiry': 2147483645.796171, 'value': 'o0582655512'}, {'name': 'RK', 'domain': '.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'expiry': 2147483645.706551, 'value': 'hKL8Zn+lHL'}, {'name': 'webp', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'expiry': 1576919370, 'value': '1'}, {'name': 'ptcz', 'domain': '.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'expiry': 2147483645.706635, 'value': 'a95c291700700a87e1f691333872a018daa914ddb46f4a7af06edaafc02fca59'}, {'name': 'pt4_token', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': 'cte27wEpPApRju6P5fasIqP6-PZMG-54Jn75xB-sweY_'}, {'name': 'p_skey', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': 'Q7IgH0qFMDvkavmIuxd6CGudJmIToqMZiGkndR872Ic_'}, {'name': 'wimrefreshrun', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': '0&'}, {'name': 'qm_flag', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': '0'}, {'name': 'qqmail_alias', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': '[email protected]'}, {'name': 'sid', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': '582655512&5b78be14a9684389c1b09f70eb5b87f5,qUTdJZ0gwcUZNRHZrYXZtSXV4ZDZDR3VkSm1JVG9xTVppR2tuZFI4NzJJY18.'}, {'name': 'ssl_edition', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': 'sail.qq.com'}, {'name': 'qm_username', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': '582655512'}, {'name': 'qm_lg', 'domain': '.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'expiry': 1545383399.435067, 'value': 'qm_lg'}, {'name': 'qm_domain', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': 'https://mail.qq.com'}, {'name': 'qm_ptsk', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': '582655512&@IFIMyL7QD'}, {'name': 'foxacc', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': '582655512&0'}, {'name': 'edition', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'expiry': 1547975369.435164, 'value': 'mail.qq.com'}, {'name': 'qm_loginfrom', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': '582655512&wpt'}, {'name': 'username', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': '582655512&582655512'}, {'name': 'CCSHOW', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'expiry': 1547975370, 'value': '000000'}, {'name': 'new_mail_num', 'domain': '.mail.qq.com', 'secure': False, 'path': '/', 'httpOnly': False, 'value': '582655512&43'}
#, {'secure': False, 'domain': '.qq.com', 'httpOnly': False, 'name': 'pgv_si', 'path': '/', 'value': 's729107456'}



def login_cookie(saveCookies):
    driver2 = webdriver.Chrome()
    driver2.get('http://mail.qq.com')
    driver2.delete_all_cookies()

    for cookie in saveCookies:
        driver2.add_cookie(cookie)
    
    driver2.refresh()

    driver2.get('http://mail.qq.com')
    driver2.implicitly_wait(1)
    
 
login_cookie(saveCookies)

猜你喜欢

转载自blog.csdn.net/Clannad_niu/article/details/85175085