概要:

1、正常登录,使用selenium获取cookie;

2、保存cookie;

3、使用cookie登录。

4、python--2.7,selenium--3.4.1

步骤1

正常登录,使用selenium获取cookie。

代码如下。

handlingcookie.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017/8/9 14:07
from selenium import webdriver if __name__ == '__main__':
url = "http://demo.avactis.com/4.7.9/sign-in.php"
username = "xxxxxxxxxx@gmail.com"
password = "xxxxxxxxxxxx"
id_username = "account_sign_in_form_email_id"
id_password = "account_sign_in_form_passwd_id"
css_button = ".btn.btn-primary.input_submit" driver = webdriver.Chrome()
driver.get(url)
driver.find_element_by_id(id_username).send_keys(username)
driver.find_element_by_id(id_password).send_keys(password)
driver.find_element_by_css_selector(css_button).click()
with open("cookie.data", "w") as f:
for cookie in driver.get_cookies():
print(cookie)
f.write(
str(cookie) + "\n"
)

执行后,保存cookie到文件

cookie.data

{u'domain': u'.avactis.com', u'secure': False, u'value': u'GA1.2.2145942479.1502271335', u'expiry': , u'path': u'/', u'httpOnly': False, u'name': u'_gid'}
{u'domain': u'.avactis.com', u'secure': False, u'value': u'GA1.2.1002502728.1502271335', u'expiry': , u'path': u'/', u'httpOnly': False, u'name': u'_ga'}
{u'domain': u'demo.avactis.com', u'secure': False, u'value': u'71a75b89b195945b4e9a80423711167e', u'expiry': 1510047349.50336, u'path': u'/', u'httpOnly': False, u'name': u'avactis_visitor_id'}
{u'domain': u'.avactis.com', u'secure': False, u'value': u'', u'expiry': , u'path': u'/', u'httpOnly': False, u'name': u'_gat'}
{u'domain': u'demo.avactis.com', u'secure': False, u'value': u'cmljk1spe04cdhlaefhtr3s4a0', u'expiry': 1504863349.503341, u'path': u'/', u'httpOnly': False, u'name': u'CZSESSID'}
{u'domain': u'demo.avactis.com', u'secure': False, u'value': u'save', u'expiry': 1502357746.463145, u'path': u'/', u'httpOnly': False, u'name': u'save_session'}

步骤2

使用cookie登录

loading_cookie_data.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017/8/9 15:06
import time
from selenium import webdriver if __name__ == '__main__':
url = "http://demo.avactis.com/4.7.9" with open("cookie.data", "r") as f:
lis_lines = f.readlines() driver = webdriver.Chrome()
driver.get(url)
for line in lis_lines:
dic_line = eval(line.strip())
driver.add_cookie(dic_line)
driver.refresh()
time.sleep(5)

工程目录

需要注意

1、首先,打开url driver.get(url) ,然后才能添加cookie driver.add_cookie(dic_line) 。

2、handlingcookie.py中,登录后,不能点击页面上的signout,否则会导致cookie无效。

3、需要将chromedriver.exe的路径配置在环境变量中。

python selenium cookie 登录的更多相关文章

  1. Python Selenium Cookie 绕过验证码实现登录

    Python Selenium Cookie 绕过验证码实现登录 之前介绍过博客园的通过cookie 绕过验证码实现登录的方法.这里并不多余,会增加分析和另外一种方法实现登录. 1.思路介绍 1.1. ...

  2. 使用Python+Selenium模拟登录QQ空间

    使用Python+Selenium模拟登录QQ空间爬QQ空间之类的页面时大多需要进行登录,研究QQ登录规则的话,得分析大量Javascript的加密解密,这绝对能掉好几斤头发.而现在有了seleniu ...

  3. Python + Selenium 实现登录Office 365

    最近捡起之前用的Python + Selenium实现工作中需要的登录Office 365功能.(吐槽:国内网络真是卡,登录Office 365实属不易.另外Selenium这样的网站都要墙,无法理解 ...

  4. python+selenium自动化登录dnf11周年活动界面领取奖励登录部分采坑总结[1]

    背景: Dnf的周年庆活动之一,游戏在6月22日 06:00~6月23日 06:00之间登陆过游戏后可以于6月25日 16:00~7月04日 06:00领取奖励 目标:连续四天自动运行脚本,自动领取所 ...

  5. selenium cookie 登录

    前言 爬虫方向的小伙伴们都知道网页爬虫经常遇到的问题就是登录账户,有些简单的网站我们可以简单的send key来输入账户密码就可以登录,但是有很多网站需要验证码之类的就不太好用了,这时候就体现到了co ...

  6. python+selenium实现登录账户

    selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Gr ...

  7. Python+ Selenium自动化登录腾讯QQ邮箱实例

    学习了Python语言一段时间后,在公司的项目里也使用到了python来写测试脚本,一些重复的操作都使用脚本来处理了.大大的提高工作效率,减少了一些手工重复的操作. 以下是使用unittest框架写的 ...

  8. python selenium模拟登录163邮箱和QQ空间

    最近在看python网络爬虫,于是我想自己写一个邮箱和QQ空间的自动登录的小程序, 下面以登录163邮箱和QQ空间和为例: 了解到在Web应用中经常会遇到frame/iframe 表单嵌套页面的应用, ...

  9. 九、Python+Selenium模拟登录

    研究QQ登录规则的话,得分析大量Javascript的加密解密,比较耗时间.自己也是练习很少,短时间成功不了.所以走了个捷径. Selenium是一个WEB自动化测试工具,它运行时会直接实例化出一个浏 ...

随机推荐

  1. python调度框架APScheduler使用详解

    # coding=utf-8 """ Demonstrates how to use the background scheduler to schedule a job ...

  2. vue-router 动态路由匹配

    export default new Router({ routes: [ { path: '/', name: 'HelloWorld', component: HelloWorld, }, { / ...

  3. Java 分页之最简单的算法

    分页实现有很多方式,如jQuery自带框架pagination或在java封装一个类pager等.   下写一个简单易懂的分页算法   逻辑:   // 步骤1:设置每页页数大小 long pageS ...

  4. 工作总结 返回 json 后台对象中,某一个字段设为string 整个对象转换为json 返回到页面中

    JsonRequestBehavior.AllowGet作用 若要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet MVC 默认 Request 方式为 Po ...

  5. C# Html Agility Pack

    using System; using HtmlAgilityPack; using System.IO; using System.Text; using System.Text.RegularEx ...

  6. mysql中把字符串转成时间戳进行对比

    ::") ");

  7. amchart 图表设置

    官网:https://www.amcharts.com/demos/ 属性介绍:https://docs.amcharts.com/3/javascriptcharts/AmLegend 安装 bow ...

  8. /etc/cron.d添加定时任务脚本后不生效

    原因:定时任务脚本中的命令中包含了环境变量,crontab不能读取到环境变量. vim /etc/cron.d/mymon #mymon内容如下: * * * * * root cd $GOPATH/ ...

  9. 生成JNI的DLL时提示找不到jni.h的解决的方法Cannot open include file: 'jni.h': No such file or directory

    解决的方法: 就是到jdk的安装文件夹下include下把下面对应的文件,拷贝到vc文件夹下的include文件夹下 \jdk\include\jni.h \jdk\include\win32\jaw ...

  10. git 撤销已经push到远端的代码

    其实是没有直接让远端代码回复到某次的指令,实现撤销push的思路如下: 1.先让代码恢复到想要恢复的前一次提交记录 2.重新提交代码,覆盖端上的代码,就相当于撤销了push 的提交 实现方式如下: 1 ...