利用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 不关闭控制台的实现方法
Oct 23 Python
python提示No module named images的解决方法
Sep 29 Python
Python callable()函数用法实例分析
Mar 17 Python
python pycurl验证basic和digest认证的方法
May 02 Python
浅谈Python的list中的选取范围
Nov 12 Python
说说如何遍历Python列表的方法示例
Feb 11 Python
Python测试模块doctest使用解析
Aug 10 Python
Python 实现OpenCV格式和PIL.Image格式互转
Jan 09 Python
python多进程使用函数封装实例
May 02 Python
Python django框架 web端视频加密的实例详解
Nov 20 Python
一篇文章弄懂Python中的内建函数
Aug 07 Python
利用Python读取微信朋友圈的多种方法总结
Aug 23 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
一个用mysql_odbc和php写的serach数据库程序
2006/10/09 PHP
php cout<<的一点看法
2010/01/24 PHP
CI框架实现框架前后端分离的方法详解
2016/12/30 PHP
PHP实现登陆表单提交CSRF及验证码
2017/01/24 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
JavaScript与函数式编程解释
2007/04/27 Javascript
js继承 Base类的源码解析
2008/12/30 Javascript
用Javascript实现Windows任务管理器的代码
2012/03/27 Javascript
js模仿html5 placeholder适应于不支持的浏览器
2013/01/13 Javascript
原生js的弹出层且其内的窗口居中
2014/05/14 Javascript
JavaScript判断文件上传类型的方法
2014/09/02 Javascript
JavaScript将数组转换成CSV格式的方法
2015/03/19 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
Node.js Mongodb 密码特殊字符 @的解决方法
2017/04/11 Javascript
利用原生js实现html5小游戏之打砖块(附源码)
2018/01/03 Javascript
vue项目实现github在线预览功能
2018/06/20 Javascript
vue主动刷新页面及列表数据删除后的刷新实例
2018/09/16 Javascript
写一个Vue Popup组件
2019/02/25 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
详解python的ORM中Pony用法
2018/02/09 Python
Python使用zip合并相邻列表项的方法示例
2018/03/17 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
Python get获取页面cookie代码实例
2018/09/12 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
python如何支持并发方法详解
2020/07/25 Python
苹果中国官方网站:Apple中国
2016/07/22 全球购物
Shopty西班牙:缝纫机在线销售
2018/01/26 全球购物
美国孕妇装购物网站:Motherhood Maternity
2019/09/22 全球购物
统计系教授推荐信
2014/02/28 职场文书
个人社会实践自我鉴定
2014/03/24 职场文书
2014年医德医风工作总结
2014/11/13 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
2015年暑假工作总结
2015/07/13 职场文书
《蜜蜂引路》教学反思
2016/02/22 职场文书
Java实现多线程聊天室
2021/06/26 Java/Android