有些简单的网站我们可以简单的send key来输入账户密码就可以登录,但是有很多网站需要验证码之类的就不太好用了,这时候就体现到了cookie登录的优点了。
创建demo.py
from selenium import webdriver import time import json #填写webdriver的保存目录 driver = webdriver.Chrome('../chromedriver.exe') #记得写完整的url 包括http和https driver.get('https://www.baidu.com') #程序打开网页后20秒内手动登陆账户 time.sleep(30) with open('cookies.txt','w') as cookief: #将cookies保存为json格式 cookief.write(json.dumps(driver.get_cookies())) driver.close() |
创建demo2.py
from selenium import webdriver import time import json #填写webdriver的保存目录 driver = webdriver.Chrome() #记得写完整的url 包括http和https driver.get('https://www.baidu.com') #首先清除由于浏览器打开已有的cookies driver.delete_all_cookies() with open('cookies.txt','r') as cookief: #使用json读取cookies 注意读取的是文件 所以用load而不是loads cookieslist = json.load(cookief) for cookie in cookieslist: driver.add_cookie(cookie) # 刷新页面 driver.refresh() |
解决Cookie时效性字段
from selenium import webdriver import json #填写webdriver的保存目录 driver = webdriver.Chrome('../chromedriver.exe') #记得写完整的url 包括http和https driver.get('https://www.baidu.com') #首先清除由于浏览器打开已有的cookies driver.delete_all_cookies() with open('cookies.txt','r') as cookief: #使用json读取cookies 注意读取的是文件 所以用load而不是loads cookieslist = json.load(cookief) # 方法1 将expiry类型变为int for cookie in cookieslist: #并不是所有cookie都含有expiry 所以要用dict的get方法来获取 if isinstance(cookie.get('expiry'), float): cookie['expiry'] = int(cookie['expiry']) driver.add_cookie(cookie) driver.refresh() import time import json #填写webdriver的保存目录 driver = webdriver.Chrome('../chromedriver.exe') #记得写完整的url 包括http和https driver.get('https://www.baidu.com') #程序打开网页后20秒内手动登陆账户 time.sleep(30) with open('cookies.txt','w') as cookief: #将cookies保存为json格式 cookief.write(json.dumps(driver.get_cookies())) driver.close() |
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。