利用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实现忽略大小写对字符串列表排序的方法
Sep 25 Python
python构建自定义回调函数详解
Jun 20 Python
Python语言描述随机梯度下降法
Jan 04 Python
python中的闭包函数
Feb 09 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
Apr 30 Python
python实现得到当前登录用户信息的方法
Jun 21 Python
解决python flask中config配置管理的问题
Jul 26 Python
Python坐标线性插值应用实现
Nov 13 Python
Python可以实现栈的结构吗
May 27 Python
如何向scrapy中的spider传递参数的几种方法
Nov 18 Python
python 录制系统声音的示例
Dec 21 Python
Python基于百度AI实现抓取表情包
Jun 27 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
海贼王动画变成“真人”后,凯多神还原,雷利太帅了!
2020/04/09 日漫
PHP获取短链接跳转后的真实地址和响应头信息的方法
2014/07/25 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
asp.net+js 实现无刷新上传解析csv文件的代码
2010/05/17 Javascript
yepnope.js 异步加载资源文件
2011/09/08 Javascript
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
JavaScript Ajax Json实现上下级下拉框联动效果实例代码
2013/11/23 Javascript
关于Javascript 对象(object)的prototype
2014/05/09 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
2014/05/12 Javascript
原生js结合html5制作小飞龙的简易跳球
2015/03/30 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
2015/08/11 Javascript
跟我学习javascript的定时器
2015/11/19 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
详解JS构造函数中this和return
2017/09/16 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
2019/04/30 Javascript
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
替换python字典中的key值方法
2018/07/06 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
如何使用pandas读取txt文件中指定的列(有无标题)
2020/03/05 Python
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
HTML5中的Web Notification桌面通知功能的实现方法
2019/07/29 HTML / CSS
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
超市客服工作职责
2014/06/11 职场文书
分居协议书范本(律师见证版)
2014/11/26 职场文书
小浪底导游词
2015/02/12 职场文书
人事聘任通知
2015/04/21 职场文书
团日活动总结格式
2015/05/11 职场文书
八月一日观后感
2015/06/10 职场文书