Python实现自动上京东抢手机

yipeiwu_com5年前Python基础

本文实例为大家分享了Python自动上京东抢手机的具体代码,供大家参考,具体内容如下

上次抢荣耀V9,被京东给恶心到了,所以就写了个简单的Python来自动抢V9。虽然用的是比较蠢的方法,但觉得还是有可以学习的地方。所以在这里把代码贴出来给大家看看。

# -*- coding: UTF-8 -*- 
from splinter.browser import Browser 
import time 
def login(b): 
 b.click_link_by_text("账户登录") 
 time.sleep(1) 
 b.fill("loginname","XXX") #京东用户名 
 time.sleep(1) 
 b.fill("nloginpwd","XXX") #登陆密码 
 time.sleep(1) 
 b.find_by_id("loginsubmit").click() 
 print b 
 return b 
#订单页 
def loop(b): #循环点击 
 try: 
 if b.title=="订单结算页 -京东商城": 
  b.find_by_text("保存收货人信息").click() 
  b.find_by_text("保存支付及配送方式").click() 
  b.find_by_id("order-submit").click() 
  return b 
 else: #多次抢购操作后,有可能会被转到京东首页,所以要再打开手机主页 
  b.visit("https://item.jd.com/4461470.html") #荣耀V9的URL 
  b.find_by_id("choose-btn-qiang").click() 
  time.sleep(1) 
  loop(b) #递归操作 
 except Exception: #异常情况处理,以免中断程序 
 b.reload() #重新刷新当前页面,此页面为订单提交页 
 time.sleep(1) 
 loop(b) #重新调用自己 
b = Browser() 
b.visit("https://item.jd.com/4461470.html") 
time.sleep(10) 
b.click_link_by_text("你好,请登录") 
time.sleep(5) 
b = login(b) #登录 
time.sleep(1) 
while True: 
 loop(b) 
 if b.is_element_present_by_id("tryBtn"): #订单提交后显示“再次抢购”的话 
 b.find_by_id("tryBtn").click() #点击再次抢购,进入读秒5,跳转订单页 
 time.sleep(6.5) 
 elif b.title=="订单结算页 -京东商城": #如果还在订单结算页 
 b.find_by_id("order-submit").click() 
 else: 
 print('恭喜你,抢购成功') 
 break 

更多关于python安装教程的文章请参考《python各版本安装教程》

更多精彩书单,请点击python编程必备书单

领取干货:零基础入门学习python视频教程

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python测试模块doctest使用解析

面试被问到了却没有用过,很尴尬;今天看了一下,真的是一个很简单的测试模块 方便起见,这里直接拿菜鸟教程的介绍和例子过来 开发高质量软件的方法之一是为每一个函数开发测试代码,并且在开发...

python实现简易版计算器

python实现简易版计算器

学了一周的Python,这篇文章算是为这段时间自学做的小总结。 一、Python简介        Python是一门十分优美...

python3使用matplotlib绘制条形图

python3使用matplotlib绘制条形图

本文实例为大家分享了python3使用matplotlib绘制条形图的具体代码,供大家参考,具体内容如下 绘制竖状条形图 代码 from matplotlib import pyp...

浅谈Django的缓存机制

由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memc...

在python中使用正则表达式查找可嵌套字符串组

在网上看到一个小需求,需要用正则表达式来处理。原需求如下: 找出文本中包含”因为……所以”的句子,并以两个词为中心对齐输出前后3个字,中间全输出,如果“因为”和“所以”中间还存在“因为”...