利用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 列表排序方法reverse、sort、sorted详解
Jan 22 Python
使用Python的Django框架结合jQuery实现AJAX购物车页面
Apr 11 Python
Python中shutil模块的常用文件操作函数用法示例
Jul 05 Python
Python django使用多进程连接mysql错误的解决方法
Oct 08 Python
浅谈pycharm出现卡顿的解决方法
Dec 03 Python
python3去掉string中的标点符号方法
Jan 22 Python
python pytest进阶之fixture详解
Jun 27 Python
Python 使用元类type创建类对象常见应用详解
Oct 17 Python
python计算二维矩形IOU实例
Jan 18 Python
小 200 行 Python 代码制作一个换脸程序
May 12 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
May 22 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
Jul 09 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
介绍几个array库的新函数 php
2006/12/29 PHP
PHP 递归效率分析
2009/11/24 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
2013/06/05 PHP
ThinkPHP单字母函数(快捷方法)使用总结
2014/07/23 PHP
PHP函数超时处理方法
2016/02/14 PHP
php 读取文件夹下所有图片、文件的实例
2018/10/17 PHP
HTML node相关的一些资料整理
2010/01/01 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
2012/08/24 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
js实现简单鼠标跟随效果的方法
2015/04/10 Javascript
JS获取下拉框显示值和判断单选按钮的方法
2015/07/09 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
vue仿element实现分页器效果
2018/09/13 Javascript
JS实现网站吸顶条
2020/01/08 Javascript
JS实现音量控制拖动
2020/01/15 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
详细讲解Python中的文件I/O操作
2015/05/24 Python
python&MongoDB爬取图书馆借阅记录
2016/02/05 Python
python调用fortran模块
2016/04/08 Python
利用python批量给云主机配置安全组的方法教程
2017/06/21 Python
Python语言描述KNN算法与Kd树
2017/12/13 Python
Windows环境下python环境安装使用图文教程
2018/03/13 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
对python3 urllib包与http包的使用详解
2018/05/10 Python
Python 查看list中是否含有某元素的方法
2018/06/27 Python
Python 输出详细的异常信息(traceback)方式
2020/04/08 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
Too Faced官网:美国知名彩妆品牌
2017/03/07 全球购物
运行时异常与一般异常有何异同?
2014/01/05 面试题
vue项目实现分页效果
2021/03/24 Vue.js
预防艾滋病宣传标语
2014/06/25 职场文书
先进工作者事迹材料
2014/12/23 职场文书
介绍信范文
2015/01/31 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers