目前学习到的一种登录方法:

  1. 首先使用selenuim创建的浏览器对象打开京东的登录页面
  2. 在登录页面之后设置等待,我们手动扫码登录
  3. 扫码登录之后,就产生了含有本用户信息的cookie,保存这个cookie
  4. 保存cookie到本地,下次登录的使用可以直接读取,但是cookie是有有效期的
  5. 登录的时候读取本地cookie,使用drive.add_cookies()添加cookie,之后刷新页面,可以发现确实登录了。
代码:
from selenium import webdriver
import time
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import jsonclass CookieLogin():def __init__(self):self.drive = webdriver.Chrome()self.url = 'https://passport.jd.com/new/login.aspx?/'#先手动登录,让程序获取到cookie,保存下来def getcookie(self):#首先直接访问登录的页面 passport.jd.comself.drive.get(self.url)#扫码登录#登录之后的页面会跳转到这里,让浏览器等待,直到url完全匹配url='https://www.jd.com/'WebDriverWait(self.drive,20).until(EC.url_to_be(url))#登录之后停2秒time.sleep(2)#获取到的cookies是列表cookieList  = self.drive.get_cookies()#转成字符串cookieStr = json.dumps(cookieList)# print(cookieStr)with open('data/Jdcookie.txt', 'w') as f:f.write(cookieStr)print('cookie已写入')print(self.drive.current_url)self.drive.close()#读取cookiedef readcookie(self):self.drive.get('https://www.jd.com/')with open('data/Jdcookie.txt',mode='r',encoding='utf-8') as f:cookie = f.read()#读取到的是字符串类型,loads之后就变成了python中的字典类型cookie = json.loads(cookie)#先把所有的cookie全部删掉self.drive.delete_all_cookies()for item in cookie:print(type(item))print(item)self.drive.add_cookie(item)#是一个列表内套字典的形式self.drive.refresh()time.sleep(5)self.drive.close()if __name__ == '__main__':login = CookieLogin()# login.getcookie()login.readcookie()
注意的点:

cookieList = self.drive.get_cookies() 获取到的是cookies是python中的列表格式<class ‘list’>,然后使用json.dumps()转为字符串,然后把这个字符串保存到文件中。(直接使用json.dump()可以直接存到文件中),所以:

#转成字符串cookieList  = self.drive.get_cookies()cookieStr = json.dumps(cookieList)# print(cookieStr)with open('data/Jdcookie.txt', 'w') as f:f.write(cookieStr)

可以替换为

#转成字符串cookieList  = self.drive.get_cookies()# print(cookieStr)with open('data/Jdcookie.txt', 'w') as f:json.dump(cookieList,f)

实现的效果是一样的。

这个时候,cookie就已经写到文件中了:

data/Jdcookie.txt


很长的一段。可以使用网页的json格式化输出:

这时候,有了cookie就可以直接登录京东了。
readcookie函数从文件中读取刚才的cookie,文件中存储的是json字符串,读取之后的类型还是json字符串类型,需要使用json.loads()把它转为为python中的对象。转换之后是 列表内嵌套字典的形式,循环遍历列表,取出每一个字典,每一个字典就是一条cookie,一条条的添加到浏览器的cookies中。
add_cookie(self, cookie_dict)接收的参数就是字典类型。

selenuim使用cookie登录京东相关推荐

  1. python爬虫requests.getcookie_爬虫14 案例--requests使用Cookie登录京东商城

    京东测试账号: 账号:python_afu 密码:**** 手动登录京东后,保存头部信息 可以使用sublime对内容进行正则处理 注意如果有冒号,要去掉哦 下面的代码使用到了Cookie,因为Coo ...

  2. 双十一到啦,Python教你如何自动登录京东,在线抢购商品

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 小雨 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自 ...

  3. 用cookie登录KinhDown教程

    1.登录百度网盘网页版 2.在浏览量中,按F12(Fn+F12) 出现如下界面 3.选择Application->Cookies 复制STOKEN和BDUSS对应的值value,按照此格式复制到 ...

  4. 京东云 linux无法远程,如何远程登录京东云云主机.pdf

    如何远程登录京东云云主机.pdf 京东云云主机的搭建和配置 Linux 系统主机: 如何登陆京东云Linux 系统,以 CentOS 7.1 64 为例,按照如下步骤登陆京东Linux 系统云主 机. ...

  5. python获取登录后的cookie_python爬虫使用cookie登录详解

    前言: 什么是cookie? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密). 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想 ...

  6. 使用urllib.request库获取cookie登录

    使用urllib.request库获取cookie登录 一 .使用手动添加cookie的方式来获取页面 二.使用 cookiejar 自动获取登录后获得的cookie 一 .使用手动添加cookie的 ...

  7. cookie登录知乎

    用cookie登录个人知乎主页 步骤: 1.用自己账号登录知乎,然后复制下来自己的cookie信息.2.用request.get(url,headers=headers)把cookie传入get请求中 ...

  8. python爬虫qq好友信息,GitHub - equationl/QQzone_crawler: QQ 空间动态爬虫,利用cookie登录获取所有可访问好友空间的动态保存到本地...

    关于 Edit by equationl 优先在 码云 上更新 该项目修改自 xjr7670 的 QQzone_crawler 原作者说明: QQ空间动态爬虫 修改了什么? 爬取完整的评论列表 爬取点 ...

  9. OAuth2:项目演示-模拟微信授权登录京东

    认证流程: 1.客户(京东)发送认证申请给资源所有者(用户的微信即要登录京东的微信) 2.资源所有者(用户的微信即要登录京东的微信)同意授权,返回一个code码给客户(京东) 3.客户(京东)拿到授权 ...

  10. python爬虫——Cookie登录爬取豆瓣短评和影评及常见问题

    python爬虫--Cookie登录爬取豆瓣短评和影评 常见问题(本文已解决) 具体步骤 一.获取网页源码 短评.影评 二.解析网页源码及爬取评论 1.短评网页解析 ①确定位置 2.短评爬取 ①名称爬 ...

最新文章

  1. java param request_SpringMvc之@RequestParam详解
  2. 任正非最新署名文章:不要因为美国打压而放弃全球化战略
  3. 【Python教程】统计序列中元素出现频度的详细方法
  4. 【报错】TypeError: ‘int‘ object is not callable_Python系列学习笔记
  5. 【轻松一刻】计算公式:为什么我们都是猪
  6. 《你不常用的c#之五》:Thread与ThreadPool的内存之战
  7. 青龙面板出现需要409000秒才能登陆,加忘记密码
  8. 如何理解 Python 中的面向对象编程?
  9. 09程序员的修炼之道阅读笔记之三
  10. 任务调度 QUARTZ
  11. [AHK]--显示器输入源快速切换
  12. 路由策略—直连路由引入实验
  13. 安装office未能启动服务器,Office 2010安装时遇到1920错误问题怎么解决?
  14. c语言阿拉伯数字转换英文数字
  15. 数字图像处理——第七章(小波变换和多分辨率处理)
  16. 利用kmplayer查看wav声音文件的采样率
  17. leetcode279 拉格朗日四平方和定理
  18. 西游记中孙悟空为什么打不过有法宝的妖怪?
  19. 加速度传感器的基本组成
  20. 【QT学习】QRegExp类正则表达式(一文读懂)

热门文章

  1. 交返对于高频交易者尤为重要
  2. 智慧工厂管理系统全面提升智能化水平
  3. 浅谈vue 动态加载、注册组件
  4. 简体中文原型设计工具对比
  5. Visio实现箭头反向
  6. Java获取一个月每周星期一至星期日的日期
  7. 66天全部就业,最高薪资25000元!黑马Java学科真牛
  8. 视频教程-HTML5基础知识实战演练教程-HTML5/CSS
  9. oracle 绑定变量语法,Delphi使用绑定变量法操作Oracle
  10. C语言全局变量和局部变量的区别详解