利用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中isalnum()方法的使用
May 18 Python
python 去除txt文本中的空格、数字、特定字母等方法
Jul 24 Python
使用Python实现一个栈判断括号是否平衡
Aug 23 Python
Python读取txt内容写入xls格式excel中的方法
Oct 11 Python
Python 的AES加密与解密实现
Jul 09 Python
Python 进程之间共享数据(全局变量)的方法
Jul 16 Python
python傅里叶变换FFT绘制频谱图
Jul 19 Python
基于jupyter代码无法在pycharm中运行的解决方法
Apr 21 Python
完美解决keras保存好的model不能成功加载问题
Jun 11 Python
keras 读取多标签图像数据方式
Jun 12 Python
python删除文件、清空目录的实现方法
Sep 23 Python
Python如何利用正则表达式爬取网页信息及图片
Apr 17 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 htmlspecialchars加强版
2010/02/16 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
2014/11/18 PHP
php单例模式示例分享
2015/02/12 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
Django 中 cookie的使用
2017/08/17 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
js的with语句使用方法
2007/09/21 Javascript
js不间断滚动的简单实现
2016/06/03 Javascript
JS实现简单易用的手机端浮动窗口显示效果
2016/09/07 Javascript
在JS中a标签加入单击事件屏蔽href跳转页面
2016/12/16 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
JS获取字符对应的ASCII码实例
2017/09/10 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
vue-lazyload使用总结(推荐)
2018/11/01 Javascript
vue component 中引入less文件报错 Module build failed
2019/04/17 Javascript
轻松解决JavaScript定时器越走越快的问题
2019/05/13 Javascript
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
2020/04/27 Javascript
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
python装饰器练习题及答案
2019/11/01 Python
pip安装tensorflow的坑的解决
2020/04/19 Python
python如何写出表白程序
2020/06/01 Python
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
linux面试题参考答案(3)
2012/09/13 面试题
国际贸易实务实训报告
2014/11/05 职场文书
社区义诊通知
2015/04/24 职场文书
mysql升级到5.7时,wordpress导数据报错1067的问题
2021/05/27 MySQL
Java实战之用Swing实现通讯录管理系统
2021/06/13 Java/Android
Spring Boot 使用 Spring-Retry 进行重试框架
2022/04/24 Java/Android