利用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爬虫之urllib2使用指南
Nov 05 Python
python插入排序算法实例分析
Jul 03 Python
机器学习之KNN算法原理及Python实现方法详解
Jul 09 Python
python使用__slots__让你的代码更加节省内存
Sep 05 Python
使用PyCharm创建Django项目及基本配置详解
Oct 24 Python
django框架使用orm实现批量更新数据的方法
Jun 21 Python
树莓派用python中的OpenCV输出USB摄像头画面
Jun 22 Python
python绘制直方图和密度图的实例
Jul 08 Python
Python3远程监控程序的实现方法
Jul 15 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
Jul 26 Python
Python实现变声器功能(萝莉音御姐音)
Dec 05 Python
python 多线程死锁问题的解决方案
Aug 25 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
JAVA/JSP学习系列之二
2006/10/09 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
用JS判断IE版本的代码 超管用!
2011/08/09 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
js选择并转移导航菜单示例代码
2014/08/19 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
2016/02/25 Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
2016/10/31 Javascript
bootstrap输入框组件使用方法详解
2017/01/19 Javascript
使用gulp搭建本地服务器并实现模拟ajax
2017/04/05 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
Vue实现路由跳转和嵌套
2017/06/20 Javascript
使用Webpack提高Vue.js应用的方式汇总(四种)
2017/07/10 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
2017/09/28 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
vue项目移动端实现ip输入框问题
2019/03/19 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
2019/04/10 Javascript
Preload基础使用方法详解
2020/02/03 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
[52:07]完美世界DOTA2联赛PWL S3 LBZS vs access 第二场 12.10
2020/12/13 DOTA
pytorch cnn 识别手写的字实现自建图片数据
2018/05/20 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
python 调试冷知识(小结)
2019/11/11 Python
基于python实现对文件进行切分行
2020/04/26 Python
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
简述索引存取方法的作用和建立索引的原则
2013/03/26 面试题
财务管理专业推荐信
2013/11/19 职场文书
食堂员工工作职责
2013/12/18 职场文书
工作过失检讨书
2014/02/23 职场文书
高中生评语大全
2014/04/25 职场文书
婚庆公司开业主持词
2015/06/30 职场文书
Shell中的单中括号和双中括号的用法详解
2022/12/24 Servers