DrissionPage采集京东系列——自动化登录

前言

本系列介绍了如何使用DrissionPage库自动化操作,包括模拟搜索、登录验证、动态页面滑动抓取,以及从商品列表中提取标题、价格等信息,详细展示了如何完成京东商品数据及评论数据的抓取,本篇文章只介绍登录相关

1、流程分析

打开京东登录页面发现有三种登录方式,如下图
在这里插入图片描述

这里只介绍短信登录密码登录两种方式,其实两种登录方式流程基本一致,短信验证多了一个验证码处理的步骤,因为两种方式都涉及到了滑块验证,先介绍下滑块验证的流程

1.1 滑块验证

1.1.1 识别滑块距离

在这里插入图片描述
判断出现滑块后,直接用DrissionPage获取背景图片滑块base64字符串,这里有两个小细节需要注意一下,一是两种登录方式的图片背景CSS结构不同,二是滑块不是100%出现,有可能输入密码后直接登录成功

bk_selector = 'css:#content div.JDJRV-bigimg > img'
slide_selector = 'css:#content div.JDJRV-smallimg > img'
bk_base64 = page.ele(bk_selector).attr('src')
slide_base64 = page.ele(slide_selector).attr('src')

在这里插入图片描述
base64 字符串解码保存为图片,使用 链接: ddddocr 识别滑块缺口距离这种方式得到的距离值可能需要微调
滑块图
在这里插入图片描述
背景图
在这里插入图片描述

    det = ddddocr.DdddOcr(det=False, ocr
### 使用 DrissionPage 实现京东自动化登录 为了实现京东网站的自动化登录,可以利用 `DrissionPage` 这一强大的 Web 自动化工具。该库能够模拟浏览器操作并支持多种功能,包括但不限于页面加载、表单提交以及 Cookie 处理等。 #### 安装依赖包 在开始之前,确保已经安装了必要的 Python 库: ```bash pip install DrissionPage requests ``` 如果遇到下载缓慢的情况,建议切换到国内镜像源加速安装过程[^3]。 #### 编写自动化脚本 下面是一个简单的例子展示如何使用 `DrissionPage` 来完成京东平台上的自动登录流程: ```python from time import sleep import json from drissionpage import ChromiumPage def login_jd(username, password): with ChromiumPage() as page: url = 'https://passport.jd.com/new/login.aspx' page.get(url) # 填入用户名密码 username_input = page.ele('id:loginname') pwd_input = page.ele('id:nickName') username_input.input(username) pwd_input.input(password) submit_btn = page.ele('css:#loginsubmit') submit_btn.click() # 等待几秒让页面加载完毕 sleep(5) cookies_dict = {cookie['name']: cookie['value'] for cookie in page.cookies} print(json.dumps(cookies_dict)) return cookies_dict if __name__ == '__main__': user_name = "your_username" pass_word = "your_password" jd_cookies = login_jd(user_name, pass_word) # 将获取到的cookies保存下来以便后续请求时携带 with open('./jd_cookies.json', mode='w') as f: json.dump(jd_cookies, f) ``` 这段代码首先导入所需的模块,并定义了一个名为 `login_jd()` 的函数用于执行具体的登录逻辑。此过程中会打开一个新的 Chrome 浏览器实例访问京东登录页,输入给定的账号信息后点击登录按钮。成功登录之后提取当前 session 下所有的 Cookies 并将其序列化成 JSON 字符串打印出来,最后将这些 Cookies 存储在一个文件里方便以后重用。 请注意,在实际应用中应当妥善保管好自己的账户凭证,避免泄露个人信息造成不必要的损失!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诗雅颂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值