利用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标准库defaultdict模块使用示例
Apr 28 Python
简单分析Python中用fork()函数生成的子进程
May 04 Python
Python利用前序和中序遍历结果重建二叉树的方法
Apr 27 Python
Python的Django应用程序解决AJAX跨域访问问题的方法
May 31 Python
python使用pyqt写带界面工具的示例代码
Oct 23 Python
Python3 中文文件读写方法
Jan 23 Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 Python
用python求一个数组的和与平均值的实现方法
Jun 29 Python
基于python读取.mat文件并取出信息
Dec 16 Python
python统计字符串中字母出现次数代码实例
Mar 02 Python
python实现逻辑回归的示例
Oct 09 Python
python函数超时自动退出的实操方法
Dec 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
利用discuz自带通行证整合dedecms的方法以及文件下载
2007/03/06 PHP
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
2013/06/08 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
2017/02/23 PHP
php 使用mpdf实现指定字段配置字体样式的方法
2019/07/29 PHP
在 Laravel 中动态隐藏 API 字段的方法
2019/10/25 PHP
基于jquery的图片懒加载js
2010/06/30 Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
IE关闭时判断及AJAX注销案例学习
2013/02/18 Javascript
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
移动节点的jquery代码
2014/01/13 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
使用jquery+CSS实现控制打印样式
2014/12/31 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
Node.js连接MongoDB数据库产生的问题
2017/02/08 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
vue轮播图插件vue-awesome-swiper
2017/11/27 Javascript
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
vue.js循环radio的实例
2019/11/07 Javascript
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python读取csv文件示例(python操作csv)
2014/03/11 Python
python代码制作configure文件示例
2014/07/28 Python
RC4文件加密的python实现方法
2015/06/30 Python
python导入csv文件出现SyntaxError问题分析
2017/12/15 Python
使用Python写一个小游戏
2018/04/02 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
利用Python将文本中的中英文分离方法
2018/10/31 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
初中三年学生的学习自我评价
2013/11/13 职场文书
承诺书怎么写
2014/03/26 职场文书
优秀少先队工作者事迹材料
2014/05/13 职场文书
趣味运动会广播稿
2014/09/13 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
因个人工作失误检讨书
2019/06/21 职场文书
Python编程super应用场景及示例解析
2021/10/05 Python