首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >python京东自动签到领金豆_github京东自动签到

python京东自动签到领金豆_github京东自动签到

作者头像
全栈程序员站长
发布于 2022-09-29 03:56:09
发布于 2022-09-29 03:56:09
1.6K0
举报

大家好,又见面了,我是你们的朋友全栈君

一.介绍

PhantomJS是一个基于WebKit的JavaScript API,它使用QtWebKit作为它核心浏览器的功能,使用WebKit来编译解释执行JavaScript代码,任何你可以在基于WebKit浏览器做的事情,它都能做到。Selenium是一个用于Web应用自动化程序测试的工具,可以让浏览器自动加载页面,获取需要的数据,Selenium自己不带浏览器,所以需要和PhantomJS、FireFox、Chrome等浏览器结合。

二.登录流程

1.切换登录方式

查找claaa=div.login-tab.login-tab-r的元素,发送click事件,class标签在selenium中需要使用”元素类型.class1.class2″把空格进行替换。

2.输入用户名密码并登录

查找id=loginname的元素,调用send_keys输入用户名;查找id=nloginpwd的元素,调用send_keys输入密码;查找id=loginsubmit的元素,发送click事件。

3.用户签到

打开http://vip.jd.com/home.html页面,查找id=signIn的元素,发送click事件。

4.店内签到

打开https://bean.jd.com/myJingBean/list页面,使用xpath查找//ul[@class=’bean-shop-list’]/li/a[@class=’s-btn’]元素,查找href属性,并打开页面;在新打开的页面中查找class=a.d-header-icon.unsigned的元素,并发送click事件。

三.完整代码

新建jd.py文件

#!/usr/bin/env python3#-*- coding: utf-8 -*-

from selenium importwebdriverimporttimeimportsysimportio

sys.stdout= io.TextIOWrapper(sys.stdout.buffer, encoding=’utf-8′)#点击页面元素

defmy_click(browser, type, value):if type == “id”:

element=browser.find_element_by_id(value)elif type == “name”:

element=browser.find_element_by_name(value)elif type == “class”:

element=browser.find_element_by_css_selector(value)else:print(“Can’t find element”)returnelement.click()

time.sleep(3)#用户签到

defmy_login(browser):

browser.get(“https://passport.jd.com/uc/login”)

time.sleep(3)

my_click(browser,”class”, “div.login-tab.login-tab-r”)

loginname= browser.find_element_by_id(“loginname”)

nloginpwd= browser.find_element_by_id(“nloginpwd”)

loginname.send_keys(“username”)

nloginpwd.send_keys(“password”)

my_click(browser,”id”, “loginsubmit”)print(“login success”)

time.sleep(3)#把页面保存为图片,验证是否登录成功

browser.get_screenshot_as_file(“login.png”)#店内签到

defshop_sign_in(browser):print(“店内签到”)

browser.get(“https://bean.jd.com/myJingBean/list”)

time.sleep(3)

shops= browser.find_elements_by_xpath(“//ul[@class=’bean-shop-list’]/li/a[@class=’s-btn’]”)

urls= [s.get_attribute(“href”) for s inshops]for url inurls:try:

browser.get(url)

time.sleep(3)

my_click(browser,”class”, “a.d-header-icon.unsigned”)print(“%s 签到成功” %url)except:print(“%s 签到失败” %url)#用户登录

defuser_sign_in(driver):print(“用户签到”)

url= “http://vip.jd.com/home.html”driver.get(url)

time.sleep(3)

my_click(driver,”id”, “signIn”)print(“%s 签到成功” %url)defmain():

browser= webdriver.PhantomJS(executable_path=r”/root/phantomjs-2.1.1-linux-x86_64/bin/phantomjs”)#最大化浏览器窗口

browser.maximize_window()

my_login(browser)

user_sign_in(browser)

shop_sign_in(browser)

browser.quit()if __name__ == “__main__”:

main()

四.验证程序

环境:Python(3.5.2)

1.下载Phantomjs

2.运行脚本

root@710bd3e4deb6:~# python3 jd.py

3.登录https://bean.jd.com/myJingBean/list查看是否签到成功

五.异常处理

UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-3: ordinal not in range(128)

输出字符编码格式错误,修改编码格式

importsysimportio

sys.stdout= io.TextIOWrapper(sys.stdout.buffer, encoding=’utf-8′)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/193004.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月16日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
bootstrap-fileinput插件实现文件上传
bootstrap-fileinput插件下载:https://github.com/kartik-v/bootstrap-fileinput Demo地址:https://plugins.krajee.com/file-input/demo 中文文档:http://www.bootstrap-fileinput.com/ 下载好的目录如下图:
别团等shy哥发育
2023/02/25
3.5K0
bootstrap-fileinput插件实现文件上传
python测试开发django-121.bootstrap-table弹出模态框修表格数据提交
整个body内容如下,模态框设置id属性id=”myModal” 修改按钮的id属性id=”btn_edit”
上海-悠悠
2021/09/14
1.6K0
BootStrap-table插件添加toolbar工具栏
1、实现效果 2、定义id="toolbar"的容器(id可以自定义) <div class="row" id="toolbar"> <div class="col-sm-3"> <button class="btn btn-w-m btn-primary glyphicon glyphicon-plus" data-toggle="modal"
别团等shy哥发育
2023/02/25
1.7K0
BootStrap-table插件添加toolbar工具栏
自用插件整理之表格bootstrap-table
本插件基于bootstrap,网上各种例子也比较多,本文就不详细列api一类的了,只将自己常用的记录一下。多数代码中存在的注释,就不再重写。
WindCoder
2018/09/20
3.3K0
自用插件整理之表格bootstrap-table
Bootstrap Table表格分页的使用及分页数据(Excel)导出
1:引入Bootstrap Table表格插件相关链接:这里直接拿来用就可以了,如果要下载到本地,可以自行去官网下载。
王小婷
2019/03/15
5.7K0
Bootstrap Table表格分页的使用及分页数据(Excel)导出
ABP入门系列(14)——应用BootstrapTable表格插件
源码路径:Github-LearningMpaAbp 1. 引言 之前的文章ABP入门系列(7)——分页实现讲解了如何进行分页展示,但其分页展示仅适用于前台web分页,在后台管理系统中并不适用。后台管
圣杰
2018/01/11
5K0
ABP入门系列(14)——应用BootstrapTable表格插件
python测试开发django-120.bootstrap-table表格添加操作按钮(查看/修改/删除)
接着前面这篇https://www.cnblogs.com/yoyoketang/p/15242055.html 在columns最后添加一个操作项,formatter属性可以帮助我们更加灵活的显示表格中的内容
上海-悠悠
2021/09/14
1.3K0
python测试开发django-185.bootstrap-table 后端搜索功能实现(queryParams)
bootstrap-table 分页方式可以选 server 和client 两种分页方式。
上海-悠悠
2022/01/10
9090
python测试开发django-185.bootstrap-table 后端搜索功能实现(queryParams)
bootstraptable之uniqueId
参考: https://github.com/wenzhixin/bootstrap-table/issues/2600
全栈程序员站长
2022/11/18
1.4K0
Bootstrap Table表格分页的使用及分页数据(Excel)导出
1:引入Bootstrap Table表格插件相关链接:这里直接拿来用就可以了,如果要下载到本地,可以自行去官网下载。
王小婷
2025/05/18
2980
Bootstrap Table表格分页的使用及分页数据(Excel)导出
Bootstrap-table的客户端分页渲染表格
https://blog.csdn.net/qq_43753724/article/details/112074557
别团等shy哥发育
2023/02/25
2.7K0
Bootstrap-table的客户端分页渲染表格
bootstrap-table插件实现分页(服务端分页)
文章目录 前言: 前端html部分 js部分 后端 实现效果 前言: 本文为服务端分页,想看客户端分页请点击这里: https://blog.csdn.net/qq_43753724/articl
别团等shy哥发育
2023/02/25
2.1K0
bootstrap-table插件实现分页(服务端分页)
手撸的一个快递查询系统,竟然阅读量过1.8w
做这个项目的初衷是因为我去年在微信卖老家水果,好多朋友下单后都问我快递单号,每天发货后我都要挨个甄别这个人是哪个快递信息,很麻烦一部小心就搞错了。基于这件小事我有了自助快递查询的这个想法。将发货的快递信息导入到我的系统里,用户访问我的系统,通过输入手机号就可以查看自己的快递物流信息。 项目是去年8月写的,一直搁浅在哪,最近无意间翻看我发的那篇文章自助快递单号查询阅读量竟然都1.8w了,有图有真相。
不安分的猿人
2020/04/23
1.7K0
手撸的一个快递查询系统,竟然阅读量过1.8w
python测试开发django-124.bootstrap点删除按钮弹确认删除
批量删除bootstrap-table数据,需先弹出确认删除框,提醒用户是否确定删除。 点确定按钮的时候需获取到table表格中选中的数据id数据。
上海-悠悠
2021/09/14
2.1K0
python测试开发django-126.bootstrap-table表格内操作按钮(修改/删除) 功能实现
希望实现效果: 1、点表格后面的修改按钮,能修改对应行的数据 2、点表格后面的删除按钮,删除对应的行
上海-悠悠
2021/10/08
2.3K0
BootstrapTable (前后端分页,表格 ajax 返回数据回调处理) 配置参数全说明
bootstrap table使用总结 前端分页使用实例: var App = { renderSummaryData: (res) => { var hitchDOM = "
一个会写诗的程序员
2018/08/17
7.1K0
BootstrapTable (前后端分页,表格 ajax 返回数据回调处理) 配置参数全说明
前端MVC学习总结(四)——NodeJS+MongoDB+AngularJS+Bootstrap书店示例
摘要总结:本文介绍了如何使用AngularJS04进行图书信息管理系统开发。主要包括了图书信息录入、查询、修改和删除等功能。同时,还提供了编辑图书和删除图书的接口。通过使用AngularJS04的指令和指令模块,可以方便地实现图书信息管理系统。
张果
2018/01/04
2.7K0
前端MVC学习总结(四)——NodeJS+MongoDB+AngularJS+Bootstrap书店示例
BootstrapTable的使用教程一:实现一个简单的表格和分页二:说一说BootstrapTable的属性一览表三:bootstrap-table如何设置首行变色,其他行不变色
官方网站: http://bootstrap-table.wenzhixin.net.cn/ 参考文档:http://issues.wenzhixin.net.cn/bootstrap-table/index.html 中文文档:http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/ 下载bootstrap Table插件所必须的js,地址:https://github.com/wenzhixin/bootstrap-table 在开
王小婷
2018/05/31
5.8K0
电子规范管理系统(2)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/details/78008917
hotqin888
2018/09/11
1.3K0
电子规范管理系统(2)
EngineerCMS核心代码
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/details/53367020
hotqin888
2018/09/11
1.5K0
推荐阅读
相关推荐
bootstrap-fileinput插件实现文件上传
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
首页
学习
活动
专区
圈层
工具
MCP广场
首页
学习
活动
专区
圈层
工具
MCP广场