利用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描述器descriptor详解
Feb 03 Python
Python使用Flask框架获取当前查询参数的方法
Mar 21 Python
Python 稀疏矩阵-sparse 存储和转换
May 27 Python
Python初学时购物车程序练习实例(推荐)
Aug 08 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
Dec 30 Python
Python多线程同步---文件读写控制方法
Feb 12 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
Jul 07 Python
Python3进制之间的转换代码实例
Aug 24 Python
python 采用paramiko 远程执行命令及报错解决
Oct 21 Python
python3实现网页版raspberry pi(树莓派)小车控制
Feb 12 Python
pygame实现飞机大战
Mar 11 Python
Python3实现个位数字和十位数字对调, 其乘积不变
May 03 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缓存技术详细总结
2013/08/07 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
2015/12/07 PHP
PHP 配置后台登录以及模板引入
2017/01/24 PHP
Laravel监听数据库访问,打印SQL的例子
2019/10/24 PHP
js switch case default 的用法示例介绍
2013/10/23 Javascript
javascript垃圾收集机制与内存泄漏详细解析
2013/11/11 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
DOM操作一些常用的属性汇总
2015/03/13 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
JS控制静态页面传递参数并获取参数应用
2016/08/10 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
Bootstrap进度条学习使用
2017/02/09 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/25 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
2020/06/05 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
2020/08/20 Javascript
[01:04:39]OG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[01:39:42]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
使用python实现tcp自动重连
2017/07/02 Python
python实现随机梯度下降(SGD)
2020/03/24 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
Python实现简单查找最长子串功能示例
2019/02/26 Python
初学者学习Python好还是Java好
2020/05/26 Python
学前教育专业毕业生自荐信
2013/10/03 职场文书
黄河象教学反思
2014/02/10 职场文书
环保倡议书范文
2014/05/12 职场文书
关键在于落实心得体会
2014/09/03 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
利用 JavaScript 构建命令行应用
2021/11/17 Javascript
Python实现为PDF去除水印的示例代码
2022/04/03 Python