您的位置: 网站首页> selenium教程> 当前文章
selenium操作cookie-增删改查cookie
老董-我爱我家房产SEO2020-03-11151围观,143赞
我们都知道数据库需要增删改查操作,其实任何事物都一样我们操作它无外乎增删改查!cookie也是一样。selenium提供了操作cookie的方法如下:
get_cookies(): 获得所有cookie信息。
get_cookie(name): 获得字典的key为“name”的cookie信息。
delete_all_cookies(): 删除所有cookie信息。
delete_cookie(name):删除特定key为name的cookie信息
add_cookie(cookie_dict) : 添加cookie。cookie_dict为字典对象(这里有个坑!cookie_dict的格式并不是{'k1':'v1'},而是{'name':'k1','value':'v2'})详情查看selenium报错Message: invalid cookie domain
此外在配置的时候还可以从本地读取cookie
options.add_argument("user-data-dir=C:/Users/dong/AppData/Local/Google/Chrome/User Data")
上面的路径填写Chrome浏览器保存Cookies的路径。
下面我们以百度贴吧为例子来演示下自动登录,只是采用一种稍微麻烦点的方式:
1、先用浏览器登陆贴吧然后复制cookie出来
2、在程序里面携带上这个cookie访问贴吧
3、打印用户名(如果登陆成功肯定有用户名,未登录状态是没有用户名的)
# -*- coding: utf-8 -*-
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
from selenium.webdriver.chrome.options import Options
def get_cookie(cookie_str):
lists = cookie_str.split(';')
cookie = {}
for i in lists:
j = i.strip()
j = j.split('=')
cookie[j[0]] = j[1]
return cookie
def main(tieba_url,cookie_dict):
driver.get(tieba_url)
for k, v in cookie_dict.items():
driver.add_cookie({'name': k, 'value': v})
driver.get(tieba_url)
my_name = WebDriverWait(driver, 30).until(
EC.visibility_of_element_located((By.CLASS_NAME, "u_username_title"))
)
print(my_name.text)
if __name__ == "__main__":
# 换成你登录贴吧后从浏览器复制的cookie
cookie_str = 'xxxx'
option = Options()
option.add_argument('--disable-gpu')
option.binary_location = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe" # 安装的位置
driver = webdriver.Chrome(options=option)
tieba_url = 'https://tieba.baidu.com/'
cookie_dict = get_cookie(cookie_str)
main(tieba_url,cookie_dict)
记得把cookie字符串换成你真实登录后的cookie,运行程序,你将会看到自己百度贴吧的用户名
很赞哦!
python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群
相关文章
文章评论
-
selenium操作cookie-增删改查cookie文章写得不错,值得赞赏


