利用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自动化运维和部署项目工具Fabric使用实例
Sep 18 Python
python构建自定义回调函数详解
Jun 20 Python
Python读取图片为16进制表示简单代码
Jan 19 Python
Python continue继续循环用法总结
Jun 10 Python
python 同时运行多个程序的实例
Jan 07 Python
Python学习笔记之lambda表达式用法详解
Aug 08 Python
Python 继承,重写,super()调用父类方法操作示例
Sep 29 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
Mar 11 Python
python filecmp.dircmp实现递归比对两个目录的方法
May 22 Python
Python通过yagmail实现发送邮件代码解析
Oct 27 Python
Python 视频画质增强
Apr 28 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简单系统数据添加以及数据删除模块源文件下载
2008/06/07 PHP
PHP中替换换行符的几种方法小结
2012/10/15 PHP
php中自定义函数dump查看数组信息类似var_dump
2014/01/27 PHP
php中strtotime函数性能分析
2016/11/20 PHP
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
js网页中的(运行代码)功能实现思路
2013/02/04 Javascript
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
javascript Array.prototype.slice的使用示例
2013/11/14 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
jQuery隐藏和显示效果实现
2016/04/06 Javascript
动态加载js文件简单示例
2016/04/21 Javascript
浅析创建javascript对象的方法
2016/05/13 Javascript
js内置对象处理_打印学生成绩单的简单实现
2016/09/24 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
2017/03/27 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
Vue中computed与methods的区别详解
2018/03/24 Javascript
JS实现左边列表移到到右边列表功能
2018/03/28 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
2018/07/08 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
基于vue项目设置resolves.alias: '@'路径并适配webstorm
2020/12/02 Vue.js
[02:48]DOTA2超级联赛专访海涛:你们的选择没有错
2013/06/07 DOTA
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
python之yield表达式学习
2014/09/02 Python
Python中Django发送带图片和附件的邮件
2017/03/31 Python
python删除某个字符
2018/03/19 Python
对Python中画图时候的线类型详解
2019/07/07 Python
python将时分秒转换成秒的实例
2019/12/07 Python
html5 标签
2009/07/16 HTML / CSS
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
GNC健安喜官方海外旗舰店:美国著名保健品牌
2017/01/04 全球购物
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
会计专业毕业生求职信
2014/07/04 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
乡镇2014法制宣传日活动总结
2014/11/01 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
民事二审代理词
2015/05/25 职场文书