利用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使用代理抓取网站图片(多线程)
Mar 14 Python
用python代码做configure文件
Jul 20 Python
详细解析Python中__init__()方法的高级应用
May 11 Python
深入理解Python对Json的解析
Feb 14 Python
python 根据时间来生成唯一的字符串方法
Jan 14 Python
python os模块简单应用示例
May 23 Python
python2爬取百度贴吧指定关键字和图片代码实例
Aug 14 Python
Python实现元素等待代码实例
Nov 11 Python
Pytorch 使用不同版本的cuda的方法步骤
Apr 02 Python
Python使用pyyaml模块处理yaml数据
Apr 14 Python
Python如何绘制日历图和热力图
Aug 07 Python
python 实现图与图之间的间距调整subplots_adjust
May 21 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
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
2011/07/18 PHP
PHP查询网站的PR值
2013/10/30 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
Javascript select下拉框操作常用方法
2009/11/09 Javascript
Js基础学习资料
2010/11/23 Javascript
浅析JQuery中的html(),text(),val()区别
2014/09/01 Javascript
JavaScript function函数种类详解
2016/02/22 Javascript
Javascript使用SWFUpload进行多文件上传
2016/11/16 Javascript
Web前端框架Angular4.0.0 正式版发布
2017/03/28 Javascript
vue2组件实现懒加载浅析
2017/03/29 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
Vue.js特性Scoped Slots的浅析
2019/02/20 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
通过js随机函数Math.random实现乱序
2020/05/19 Javascript
vue.js 解决v-model让select默认选中不生效的问题
2020/07/28 Javascript
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
浅谈Pytorch torch.optim优化器个性化的使用
2020/02/20 Python
新百伦折扣店:Joe’s New Balance Outlet
2016/08/20 全球购物
Bodum官网:咖啡和茶壶、玻璃器皿、厨房电器等
2018/08/01 全球购物
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
升学宴答谢词
2015/01/05 职场文书
教师廉洁自律个人总结
2015/02/10 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
JavaScript 对象创建的3种方法
2021/11/17 Javascript
总结三种用 Python 作为小程序后端的方式
2022/05/02 Python