利用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中精确输出JSON浮点数的方法
Apr 18 Python
python字符串连接的N种方式总结
Sep 17 Python
用Python进行基础的函数式编程的教程
Mar 31 Python
python中split方法用法分析
Apr 17 Python
Python编程中字符串和列表的基本知识讲解
Oct 14 Python
使用Python对MySQL数据操作
Apr 06 Python
Python实现统计英文文章词频的方法分析
Jan 28 Python
Python第三方库h5py_读取mat文件并显示值的方法
Feb 08 Python
基于python解线性矩阵方程(numpy中的matrix类)
Oct 21 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
Mar 27 Python
python使用OpenCV模块实现图像的融合示例代码
Apr 10 Python
Python打包exe时各种异常处理方案总结
May 18 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
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
php中批量替换文件名的实现代码
2011/07/20 PHP
PHP类相关知识点实例总结
2016/09/28 PHP
非常不错的功能强大代码简单的管理菜单美化版
2008/07/09 Javascript
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
2010/01/07 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
2015/08/25 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
jQuery实现的手动拖动控制进度条效果示例【测试可用】
2018/04/18 jQuery
JavaScript变量提升和严格模式实例分析
2019/01/27 Javascript
Vue封装的组件全局注册并引用
2019/07/24 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
js实现上传按钮并显示缩略图小轮子
2020/05/04 Javascript
npm ci命令的基本使用方法
2020/09/20 Javascript
Python多线程学习资料
2012/12/19 Python
Python设计模式之单例模式实例
2014/04/26 Python
python中对list去重的多种方法
2014/09/18 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
解决django 新增加用户信息出现错误的问题
2019/07/28 Python
python 字典访问的三种方法小结
2019/12/05 Python
opencv 图像腐蚀和图像膨胀的实现
2020/07/07 Python
Python读取yaml文件的详细教程
2020/07/21 Python
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
2016/05/17 HTML / CSS
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
大一学生假期实习的自我评价
2013/10/12 职场文书
项目建议书模板
2014/05/12 职场文书
代办委托书怎么写
2014/08/01 职场文书
无违反计划生育证明格式
2015/06/24 职场文书
导游词之无锡梅园
2019/11/28 职场文书
导游词之山东八大关
2019/12/18 职场文书
Vue详细的入门笔记
2021/05/10 Vue.js
2022新作动画《福星小子》释出宣传影片 加入内田真礼&宫野真守配音演出
2022/04/08 日漫