转载 

selenium使用cookie实现免登录

分类:    191人阅读    IT小君  2018-11-03 15:36

有时候我们爬虫的网站需要验证码登录,一般这时我们不可能再使用账号密码登录这种方法了,而是把登录后cookie保存起来,比如保存在txt文件,然后再把cookie取出来直接登录 

第一步 

用账号密码模拟登录。拿到cookie,保存在txt文件,这个要注意,我们获取的cookie是字典格式,我们需要使用cookies =json.dumps(cookies)转换为字符串格式再保存入txt文件,至于原因,可以看这个廖雪峰老师的字符串和编码 


from selenium import webdriver
import time

driver = webdriver.Firefox()
driver.get("https://www.baidu.com/")
time.sleep(3)
driver.find_element("userName").send_keys("1356046")
driver.find_element("password").send_keys("x9122")
driver.find_element("linkText","登录").click()

cookies = driver.get_cookies()
print (type(cookies))
# print ("".join(cookies))
f1 = open('cookie.txt', 'w')
f1.write(json.dumps(cookies))
f1.close

然后到cookie.txt文件里看cookie格式是否正确,键值都是用双引号”“,

如下 {“a”:1,”b”:2,”c”:3,”d”:4,”e”:5} 

 如果是 {u’a’: 1, u’c’: 3, u’b’: 2, u’e’: 5, u’d’: 4} 说明格式还没转好

 第二步 

然后又从文件取出cookie,因为取出的时候是字符串形式,然后通过cookie =json.loads(cookie)转为字典,因为取出的cookie,使用通过循环add到driver,然后刷新一下driver就可以了

f1 = open('cookie.txt') 

cookie = f1.read() 

cookie =json.loads(cookie) 

for c in cookie:

 driver.add_cookie(c) 

# # 刷新页面 

driver.refresh()  


点击广告,支持我们为你提供更好的服务

css+js实现的颜色渐变数字时钟动画特效

小众时尚单品在线电子商务网站模板

html5 svg夜空中星星流星动画场景特效

js+css3抽奖转盘旋转点餐代码

响应式时尚单品在线商城网站模板

HTML5 Canvas竖直流动线条背景动画特效

html5 canvas彩色碎片组合球形旋转动画特效

响应式太阳能能源公司网站模板

jQuery右端悬浮带返回顶部特效

网页设计开发公司网站模板

中小型创意设计服务公司网站模板

css鼠标跟随文字模糊特效

响应式咖啡饮品宣传网站模板

html5 canvas进度条圆环图表统计动画特效

现代时尚家具公司网站模板

canvas炫酷鼠标移动文字粒子特效

HTML5数字产品服务公司网站模板

html5图标下拉搜索框自动匹配代码

HTML5现代家居装潢公司网站模板

有机水果蔬菜HTML5网站模板

点击广告,支持我们为你提供更好的服务
 工具推荐 更多»
点击广告,支持我们为你提供更好的服务