zoukankan      html  css  js  c++  java
  • selenium+Python(cookie处理)

    cookie 处理
    本节重点:

    • driver.get_cookies() 获得 cookie 信息
    • add_cookie(cookie_dict) 向 cookie 添加会话信息
    • delete_cookie(name) 删除特定(部分)的 cookie
    • delete_all_cookies() 删除所有 cookie

    cookie是webdriver 中已向重要操作,有时候我们需要了解浏览器中,例如:
    是否存在了某个 cookie 信息,webdriver 可以帮助我们读取、添加,删除 cookie 信息。

    通过博客园登陆来分析 cookie

    #coding=utf-8
    from selenium import webdriver
    import time
    driver = webdriver.Firefox()
    driver.get("http://passport.cnblogs.com/login.aspx?ReturnUrl=http://www.cnblogs.com/fnng/admin/EditPosts.aspx")
    time.sleep(3)
    driver.maximize_window() # 浏览器全屏显示
    #通过用户名密码登陆
    driver.find_element_by_id("tbUserName").send_keys("fnngj")
    driver.find_element_by_id("tbPassword").send_keys("123456")
    #勾选保存密码
    driver.find_element_by_id("chkRemember").click()
    time.sleep(3)
    #点击登陆按钮
    driver.find_element_by_id("btnLogin").click()
    #获取 cookie 信息并打印
    cookie= driver.get_cookies()
    print cookie
    time.sleep(2)
    driver.close()
    

    运行打印信息:

    #第一次执行信息
    >>>
    [{u'domain': u'.cnblogs.com', u'name': u'.DottextCookie', u'value':
    u'C709F15A8BC0B3E8D9AD1F68B371053849F7FEE31F73F1292A150932FF09A7B0D4A1B449A3
    2A6B24AD986CDB05B9998471A37F39C3B637E85E481AA986D3F8C187D7708028F9D4ED3B326B
    46DC43B416C47B84D706099ED1D78B6A0FC72DCF948DB9D5CBF99D7848FDB78324',
    u'expiry': None, u'path': u'/', u'secure': False}]
    >>> ========================= RESTART ================================
    #第二次执行信息
    >>>
    [{u'domain': u'.cnblogs.com', u'name': u'.DottextCookie', u'value':
    u'5BB735CAD62E99F8CCB9331C32724E2975A0150D199F4243AD19357B3F99A416A93B2E803F
    4D5C9D065429713BE8B5DB4ED760EDCBAF492EABE2158B3A6FBBEA2B95C4DA3D2EFEADACC324
    7040906F1462731F652199E2A8BEFD8A9B6AAE87CF3059A3CAEB9AB0D8B1B7AD2A',
    u'expiry': 1379502502, u'path': u'/', u'secure': False}]
    >>>
    第一次注释掉勾选保存密码的操作,第二次通过勾选保存密码获得 cookie 信息 ;
    来看两次运行结果的 cookie 的何不同:
    u'expiry': None
    u'expiry': 1379502502
    通过对比发现,不勾选保存密码时 expiry 的值为 none ; 那么就可以初步判断勾选
    保存密码的操作在 cookie 中起到了作用。至于是否准确可以再做进一步的分析。

    添加cookie

    1.这里需要添加两个 cookie,一个是.CNBlogsCookie,另外一个
    是.Cnblogs.AspNetCore.Cookies。
    2.我这里打开的网页是博客的主页:http://www.cnblogs.com/yoyoketang,没
    进入登录页。
    3.添加 cookie 后刷新页面,接下来就是见证奇迹的时刻了。

    # coding:utf-8
    from selenium import webdriver
    import time
    driver = webdriver.Firefox()
    driver.get("http://www.cnblogs.com/yoyoketang")
    # # 添加 cookie
    c1 = {u'domain': u'.cnblogs.com',
        u'name': u'.CNBlogsCookie',
        u'value': u'xxxx',
        u'expiry': 1491887887,
        u'path': u'/',
        u'httpOnly': True,
        u'secure': False}
    c2 = {u'domain': u'.cnblogs.com',
        u'name': u'.Cnblogs.AspNetCore.Cookies',
        u'value': u'xxxx',
        u'expiry': 1491887887,
        u'path': u'/',
        u'httpOnly': True,
        u'secure': False}
    driver.add_cookie(c1) # 添加 2 个值
    driver.add_cookie(c2)
    time.sleep(3) # 交流 QQ 群:232607095
    # 刷新下页面就见证奇迹了
    driver.refresh()
    

      

  • 相关阅读:
    【Hadoop离线基础总结】Hue的简单介绍和安装部署
    【Hadoop离线基础总结】Hue与Mysql集成
    【Hadoop离线基础总结】Hue与Impala集成
    【Hadoop离线基础总结】Hue与Hive集成
    【Hadoop离线基础总结】Hue与Hadoop集成
    【Hadoop离线基础总结】impala简单介绍及安装部署
    centos7启动httpd服务失败:Job for httpd.service failed because the control process exited with error code.
    【Hadoop离线基础总结】Mac版VMware Fusion虚拟机磁盘挂载
    Azkaban无法连接网页
    【Hadoop离线基础总结】流量日志分析网站整体架构模块开发
  • 原文地址:https://www.cnblogs.com/101718qiong/p/7411706.html
Copyright © 2011-2022 走看看