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

python京东自动签到领金豆_github京东自动签到一.介绍PhantomJS是一个基于WebKit的JavaScriptAPI,它使用QtWebKit作为它核心浏览器的功能,使用WebKit来编译解释执行JavaScript代码,任何你可以在基于WebKit浏览器做的事情,它都能做到。Selenium是一个用于Web应用自动化程序测试的工具,可以让浏览器自动加载页面,获取需要的数据,Selenium自己不带浏览器,所以需要和PhantomJS、…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一.介绍

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事件。

1164036-20171109195008934-409619414.png

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事件。

1164036-20171109195401981-2028320116.png

三.完整代码

新建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查看是否签到成功

1164036-20171110154822575-165572314.png

五.异常处理

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

1164036-20171110173730544-1889409054.png

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

importsysimportio

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • esn是什么意思_IMEI MEID

    esn是什么意思_IMEI MEIDESN(ElectronicSerialNumbers):电子序列号。在CDMA系统中,是鉴别一个物理硬件设备唯一的标识。也就是说每个手机都用这个唯一的ID来鉴别自己,就跟人的身份证一样。一个ESN有32bits,也就是32/8=4bytes。随着CDMA移动设别的增多,ESN已经不够用了,所以推出了位数更多的MEID。ESN用8位的16进制来表示,如0x801EA066。…

    2022年8月30日
    2
  • DOCTYPE HTML PUBLIC的官方定义

    DOCTYPE HTML PUBLIC的官方定义出现的位置:html、jsp页面中的顶部,定义部分格式如下:官方是这样定义DOCTYPEHTMLPUBLIC的!DOCTYPE指定了HTML文档遵循的文档类型定义(DTD)。Microsoft®InternetExplorer6的新增内容你可使用此声明将InternetExplorer6及以后版本切换到标准兼容

    2022年7月12日
    24
  • 炮轰 杨丰盛的《Android应用开发揭秘》

    炮轰 杨丰盛的《Android应用开发揭秘》看到javaeye很多人在吹嘘、推荐杨丰盛的《Android应用开发揭秘》,个人就买了一本。首先拿到书时,再次感受到机工出版社的书的纸张独有的“薄如蝉翼、黄如粪便”的特征,不过想着javaeye一众人对书中内容的推荐,纸张的质量我忍了。接着看书,不过我慢慢发现书中一堆晦涩不清的表述——这种表述可能是我自己的中文理解问题,算了不说了。但书中还充斥着一堆垃圾代码,看下面书中代码…

    2022年6月8日
    30
  • 复制粘贴不到远程桌面_win10远程桌面无法复制粘贴

    复制粘贴不到远程桌面_win10远程桌面无法复制粘贴在远程服务器上打开任务管理器,在进程里面找到rdpclip进程(或者剪贴板监视器),点击“结束进程”打卡DOS命令符,输入rdpclip后,确认,从新打开远程剪贴服务。

    2022年8月20日
    10
  • Unknown symbol alloc_etherdev_mqs错误处理方法

    Unknown symbol alloc_etherdev_mqs错误处理方法编译内核模块,并且安装时,出现以下错误:root@am335x-evm:~/modules#insmodwlan.ko[292.849701]wlan:disagreesaboutversionofsymbolalloc_etherdev_mqs[292.856774]wlan:Unknownsymbolalloc_etherdev_mqs(err-2…

    2025年7月28日
    3
  • java io流面试_java面试核心知识点

    java io流面试_java面试核心知识点好久不见的IO流对IO流的学习,我记得还是初学Java基础的时候,后来找工作过程中经常看到有些招聘信息中写到熟悉IO流,现在想想IO流,真的是一脸懵逼,不说这么多废话了,IO流这次好好整理一下。说说IO流的类别在说流的类别之前,先说说什么是流,流其实就是对输入输出设备的抽象,可以把输入输出流理解为是一个通道,输入输出是相对程序而言的,如果是输出流,也就是往文件中写文件,而输入流,则是从文件中读取文件。从三个方面对IO流进行总结,一、字节流(一般都是xxxStream),二、字符流(xxxRead、xx

    2022年10月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号