利用python Selenium实现自动登陆京东签到领金币功能


Posted in Python onOctober 31, 2019

如何自动登陆京东?

我们先来看一下京东的登陆页面,如下图所示:

【插入图片,登陆页面】

利用python Selenium实现自动登陆京东签到领金币功能

登陆框就是右面这一个框框了,但是目前我们遇到一个困呐,默认的登陆方式是扫码登陆,如果我们想要以用户民个、密码的形式登陆,就要切换一下。

我们看一下这两种登陆方式是如何切换的,通过浏览器的元素检查,我们看一下两个标签。

【插入图片,两种登陆方式】

利用python Selenium实现自动登陆京东签到领金币功能

扫码登陆和用户登陆分别在一个div标签里面,我们可以通过css选择器选定用户登陆,使其下面的a标签的class为checked,接下来的一切就比较简单了。

我们要获取到用户名输入框、密码输入框以及登陆按钮即可。

【插入图片,用户登陆框】

利用python Selenium实现自动登陆京东签到领金币功能

下面看一下实现的代码,假设我们通过FireFox浏览器模拟登陆吧。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
import time
login_url='https://passport.jd.com/uc/login'
uid='********'
pwd='********'
browser=webdriver.Firefox()
wait=WebDriverWait(browser, 10)
def login():
  try:
    browser.get(login_url)
    login_tab_u=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.login-tab:nth-child(3)")))
    login_tab_u.click()#这里我们没有获取那个a标签,而是直接获取外层的div标签,比较简单而且方便
    uid_input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#loginname")))
    pwd_input=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#nloginpwd")))
    login_button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#loginsubmit")))
    uid_input.send_keys(uid)
    pwd_input.send_keys(pwd)
    login_button.click()
  except TimeoutException:
    login()
def main():
  login()
  time.sleep(5)
  browser.close()
if __name__=='__main__':
  main()

如何自动签到领金币?

领金币一定要登陆vip页面才可以。

vip页面的url='https://vip.jd.com/home.html‘

但是要登陆vip页面的话,还是会跳转到第一步的那个登陆页面,我们利用第一步的方法登陆即可。

【插入图片,签到页面】

利用python Selenium实现自动登陆京东签到领金币功能

签到的链接在右侧,我们获取到这个链接点击就行了。

【插入图片,签到链接】

利用python Selenium实现自动登陆京东签到领金币功能

这个标签很简单。

vip_url='https://vip.jd.com/home.html'
def user_singin():
  try:
    browser.get(vip_url)
    login_tab_u=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.login-tab:nth-child(3)")))
    login_tab_u.click()
    uid_input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#loginname")))
    pwd_input=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#nloginpwd")))
    login_button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#loginsubmit")))
    uid_input.send_keys(uid)
    pwd_input.send_keys(pwd)
    login_button.click()
    sign_in_button=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#signIn")))
    sign_in_button.click()
    print('您已签到成功!')
  except TimeoutException:
    user_singin()

前面的代码跟上面是一样的,只不过要获取到签到的标签。

这种登陆方式基本上可以用于任何网站,只不过做一些修改就可以了。

总结

以上所述是小编给大家介绍的利用python Selenium实现自动登陆京东签到领金币功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python操作日期和时间的方法
Mar 11 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
Oct 20 Python
python3 pandas 读取MySQL数据和插入的实例
Apr 20 Python
解决Python中list里的中文输出到html模板里的问题
Dec 17 Python
详解python:time模块用法
Mar 25 Python
Python3.5面向对象与继承图文实例详解
Apr 24 Python
python pytest进阶之fixture详解
Jun 27 Python
django rest framework vue 实现用户登录详解
Jul 29 Python
python中的垃圾回收(GC)机制
Sep 21 Python
python3实现飞机大战
Nov 29 Python
Pytorch数据读取之Dataset和DataLoader知识总结
May 23 Python
Python常遇到的错误和异常
Nov 02 Python
python+Django实现防止SQL注入的办法
Oct 31 #Python
Python 爬虫实现增加播客访问量的方法实现
Oct 31 #Python
基于Python+Appium实现京东双十一自动领金币功能
Oct 31 #Python
如何关掉pycharm中的python console(图解)
Oct 31 #Python
使用python实现男神女神颜值打分系统(推荐)
Oct 31 #Python
python实现根据文件格式分类
Oct 31 #Python
Python简易计算器制作方法代码详解
Oct 31 #Python
You might like
Oracle Faq(Oracle的版本)
2006/10/09 PHP
PHP MemCached高级缓存配置图文教程
2010/08/05 PHP
PHP高精确度运算BC函数库实例详解
2017/08/15 PHP
yii2安装详细流程
2018/05/23 PHP
学习ExtJS TextField常用方法
2009/10/07 Javascript
JQuery中$之选择器用法介绍
2011/04/05 Javascript
javascript的字符串按引用复制和传递,按值来比较介绍与应用
2012/12/28 Javascript
JavaScript实现模仿桌面窗口的方法
2015/07/18 Javascript
JS实现左右无缝轮播图代码
2016/05/01 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
2017/04/13 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
微信小程序 腾讯地图显示偏差问题解决
2019/07/27 Javascript
你知道JavaScript Symbol类型怎么用吗
2020/01/08 Javascript
如何实现vue的tree组件
2020/12/03 Vue.js
使用python调用浏览器并打开一个网址的例子
2014/06/05 Python
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
在Python的Tornado框架中实现简单的在线代理的教程
2015/05/02 Python
Python 描述符(Descriptor)入门
2016/11/20 Python
分享几道你可能遇到的python面试题
2017/07/24 Python
在Pycharm中将pyinstaller加入External Tools的方法
2019/01/16 Python
使用python PIL库实现简单验证码的去噪方法步骤
2019/05/10 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
python代码实现将列表中重复元素之间的内容全部滤除
2020/05/22 Python
Python hashlib和hmac模块使用方法解析
2020/12/08 Python
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
Lentiamo比利时:便宜的隐形眼镜
2020/02/14 全球购物
大学毕业生通用求职信
2013/09/28 职场文书
自考自我鉴定范文
2013/10/30 职场文书
建筑工程毕业生自我鉴定
2014/01/14 职场文书
党校学习自我鉴定
2014/02/24 职场文书
物业经理自我鉴定
2014/03/03 职场文书
2014年学习全国道德模范事迹思想汇报
2014/09/15 职场文书
爱心捐助活动总结
2015/05/09 职场文书
再谈python_tkinter弹出对话框创建
2022/03/20 Python