zoukankan      html  css  js  c++  java
  • python3+selenium入门13-操作cookie

    可以把cookie理解为自己账户的身份证。因为http协议是无状态的,上一个请求和下一个请求没有关系。但是有时需要有关联。比如登录之后,才能进行操作这样的设置。这个就是cookie在起作用。登录成功时,服务器会给浏览器一个cookie,浏览器会解析存在本地。然后同一个网站,下一次请求时就会把这个cookie带上,告诉服务器是哪个用户在操作。在关闭浏览器时cookie有效期结束。

    WebDriver提供了一些用来操作cookie的方法:

    get_cookies():获得cookie所有信息,返回的是一个字典

    get_cookie(key):获取返回cookie中,某一个key的值

    add_cookie(cookie_dict):手动添加cookie,需要传一个字典进去,用cookie_dict来接收,字典的键必须要有‘name’和‘value’

    delete_cookie(name):删除cookie信息,name是要删除的cookie名称

    delete_all_cookies():删除所有cookie信息

    一般就add_cookie比较常用。可以用这个来绕过登录。下面来看用cookie登录百度的实例

    因为很多网站现在通过selenium去模拟登录的话,都会有安全提示,要求验证是否本人登录啥的。所以先通过手动登录一下来拿到cookie。然后再来实验绕过登录。

    打开百度首页,点击登录按钮跳转到登录页面,把用户名密码输完了之后。F12呼出开发者工具,然后点击登录。

    登录成功后,找到www.baidu.com这个请求。看下右侧然后往下拉

    找到Cookie。我们需要的是最后BDUSS键值对的信息。

    from selenium import webdriver
    dr = webdriver.Firefox()
    dr.maximize_window()
    dr.implicitly_wait(10)
    dr.get('https://www.baidu.com/')
    dr.add_cookie({'name':'BDUSS','value':'你cookie中BDUSS对应的值'})
    dr.get('https://www.baidu.com/')
    我这边是成功绕过了登录。需要注意的是add_cookie()传入的字典一定要带‘name’和‘value’这两样。另外需要先get()一下想要设置cookie的网站,不然会报错,因为不知道这个cookie是给哪个网站的。

    add_cookie也可以这样写

    co = {'name':'BDUSS','value':'你cookie中BDUSS对应的值'}
    dr.add_cookie(cookie_dict=co)

    add_cookie其实还有一些其他参数可以用。如果用了全都直接放在方法里看起来很不方便。所以一般都是建一个字典,然后用cookie_dict这个参数去接收

  • 相关阅读:
    ESLint 规则详解(一)
    我为什么不看好微信小程序
    两分钟实现安全完备的登录模块
    基于大数据的用户行为预测在前端性能优化上的应用
    《深入浅出NodeJS》mindmap
    如何设计一个异步Web服务——任务调度
    如何设计一个异步Web服务——接口部分
    【技能】眼镜清洗,如何不用眼镜布让眼镜一尘不染?
    【技能】小白耳机维修入门--各种耳机插头接线图--耳机维修汇总贴
    【电脑skill】怎么关闭wps热点?永久关闭wps右下角弹窗的方法!
  • 原文地址:https://www.cnblogs.com/myal/p/9389942.html
Copyright © 2011-2022 走看看