selenuim使用cookie登录京东
目前学习到的一种登录方法:
- 首先使用selenuim创建的浏览器对象打开京东的登录页面
- 在登录页面之后设置等待,我们手动扫码登录
- 扫码登录之后,就产生了含有本用户信息的cookie,保存这个cookie
- 保存cookie到本地,下次登录的使用可以直接读取,但是cookie是有有效期的
- 登录的时候读取本地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登录京东相关推荐
- python爬虫requests.getcookie_爬虫14 案例--requests使用Cookie登录京东商城
京东测试账号: 账号:python_afu 密码:**** 手动登录京东后,保存头部信息 可以使用sublime对内容进行正则处理 注意如果有冒号,要去掉哦 下面的代码使用到了Cookie,因为Coo ...
- 双十一到啦,Python教你如何自动登录京东,在线抢购商品
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 小雨 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自 ...
- 用cookie登录KinhDown教程
1.登录百度网盘网页版 2.在浏览量中,按F12(Fn+F12) 出现如下界面 3.选择Application->Cookies 复制STOKEN和BDUSS对应的值value,按照此格式复制到 ...
- 京东云 linux无法远程,如何远程登录京东云云主机.pdf
如何远程登录京东云云主机.pdf 京东云云主机的搭建和配置 Linux 系统主机: 如何登陆京东云Linux 系统,以 CentOS 7.1 64 为例,按照如下步骤登陆京东Linux 系统云主 机. ...
- python获取登录后的cookie_python爬虫使用cookie登录详解
前言: 什么是cookie? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密). 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想 ...
- 使用urllib.request库获取cookie登录
使用urllib.request库获取cookie登录 一 .使用手动添加cookie的方式来获取页面 二.使用 cookiejar 自动获取登录后获得的cookie 一 .使用手动添加cookie的 ...
- cookie登录知乎
用cookie登录个人知乎主页 步骤: 1.用自己账号登录知乎,然后复制下来自己的cookie信息.2.用request.get(url,headers=headers)把cookie传入get请求中 ...
- python爬虫qq好友信息,GitHub - equationl/QQzone_crawler: QQ 空间动态爬虫,利用cookie登录获取所有可访问好友空间的动态保存到本地...
关于 Edit by equationl 优先在 码云 上更新 该项目修改自 xjr7670 的 QQzone_crawler 原作者说明: QQ空间动态爬虫 修改了什么? 爬取完整的评论列表 爬取点 ...
- OAuth2:项目演示-模拟微信授权登录京东
认证流程: 1.客户(京东)发送认证申请给资源所有者(用户的微信即要登录京东的微信) 2.资源所有者(用户的微信即要登录京东的微信)同意授权,返回一个code码给客户(京东) 3.客户(京东)拿到授权 ...
- python爬虫——Cookie登录爬取豆瓣短评和影评及常见问题
python爬虫--Cookie登录爬取豆瓣短评和影评 常见问题(本文已解决) 具体步骤 一.获取网页源码 短评.影评 二.解析网页源码及爬取评论 1.短评网页解析 ①确定位置 2.短评爬取 ①名称爬 ...
最新文章
- java param request_SpringMvc之@RequestParam详解
- 任正非最新署名文章:不要因为美国打压而放弃全球化战略
- 【Python教程】统计序列中元素出现频度的详细方法
- 【报错】TypeError: ‘int‘ object is not callable_Python系列学习笔记
- 【轻松一刻】计算公式:为什么我们都是猪
- 《你不常用的c#之五》:Thread与ThreadPool的内存之战
- 青龙面板出现需要409000秒才能登陆,加忘记密码
- 如何理解 Python 中的面向对象编程?
- 09程序员的修炼之道阅读笔记之三
- 任务调度 QUARTZ
- [AHK]--显示器输入源快速切换
- 路由策略—直连路由引入实验
- 安装office未能启动服务器,Office 2010安装时遇到1920错误问题怎么解决?
- c语言阿拉伯数字转换英文数字
- 数字图像处理——第七章(小波变换和多分辨率处理)
- 利用kmplayer查看wav声音文件的采样率
- leetcode279 拉格朗日四平方和定理
- 西游记中孙悟空为什么打不过有法宝的妖怪?
- 加速度传感器的基本组成
- 【QT学习】QRegExp类正则表达式(一文读懂)