现在有很多网站有验证码,跳过验证码实现登录可以使用cookies登录
目录
1、webdriver的添加cookies的方法
2、举个栗子
1、webdriver的添加cookies的方法
webdriver.add_cookie() #用add_cookies方法添加需要的cookies信息
一般情况下,填写name和values值就可以,格式如下:
c1={u'name':‘XX’, u'value':XX}
如果仅填写name和value登录不了,则可以继续添加其他的
c1 = {u'domain': u'XX', u'name': u'XX', u'value': u'XX', u'expiry': 1533197286, #时间戳 u'path': u'/', u'httpOnly': True, #防脚本攻击 u'secure': True} 在Cookie中标记该变量,表明只有当浏览器和Web Server之间的通信协议为加密认证协议时,浏览器才向服务器提交相应的Cookie。当前这种协议只有一种,即为HTTPS
2、举个栗子
第一步:访问需要登录后才能访问的页面
driver=webdriver.Firefox() driver.get("https://www.eolinker.com/#/home/project/api/") #需要登录后才能访问的一个接口
第三步:添加cookies
c1={u'name': u'userToken', u'value':u'%242y%2410%24peAtYKJZVoYsbnWyksn3Nep2q5KS5LpJdJWZ7cq3s3TFH83A5yxz2'} c2={u'name': u'verifyCode', u'value': u'4dacda8241457041ad4846ac23b8b023'} driver.add_cookie(c1) driver.add_cookie(c2)
第四步:刷新页面,看到的就是登录后的页面
time.sleep(3) driver.refresh()
代码如下:
# coding:utf-8 from selenium import webdriver import time driver=webdriver.Firefox() driver.get("https://www.eolinker.com/#/home/project/api/") #需要登录后才能访问的一个接口 # 第一步:一般的用name和value就够了 c1={u'name': u'userToken', u'value': u'%242y%2410%24peAtYKJZVoYsbnWyksn3Nep2q5KS5LpJdJWZ7cq3s3TFH83A5yxz2'} c2={u'name': u'verifyCode', u'value': u'4dacda8241457041ad4846ac23b8b023'} driver.add_cookie(c1) driver.add_cookie(c2) time.sleep(3) driver.refresh() #刷新页面,这时候看到的就是登录后看到的页面 time.sleep(3) driver.close()