python抢购软件/插件/脚本附完整源码


Posted in Python onMarch 04, 2021

距上篇关于淘宝抢购源码的文章已经过去五个月了,五个月来我通过不停的学习,掌握了更深层的抢购技术及原理,而上篇文章中我仅分享了关于加入购物车的商品的抢购源码,且有部分不足。

博主不提供任何服务器端程序,也不提供任何收费抢购软件。该文章仅作为学习selenium框架及GUI开发的一个示例代码。该思路可运用到其他任何网站,京东,天猫,淘宝均可使用,且不属于外挂或者软件之类,只属于一个自动化点击工具,如有侵犯到任何公司的合法权益,请私信联系,会第一时间将相关代码给予删除。

本篇文章我将附上完整源码,及其图形化开发的源码,及加密源码。代码稍长,如有疑惑可站内私信联系博主。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
#made in white-night
#coding=utf-8
 
import re
from PyQt5.QtWidgets import *
import sys
from PyQt5 import QtCore, QtWidgets
from selenium import webdriver
import datetime
import time
import threading
import wmi
 
class LoginDlg(QDialog):
 def __init__(self, parent=None):
  super(LoginDlg, self).__init__(parent)
 
  usr = QLabel("请选择抢购方式:")
  pwd = QLabel("请输入抢购时间:")
  self.lineEdit = QLineEdit("",self)
  self.lb0 = QLabel("请输入待抢购网址:", self)
  self.lbl = QLabel("等待选择抢购方案", self)
  self.lb2 = QLabel("机器码:", self)
  self.lb3 = QLabel("授权码:", self)
  self.lb4 = QLabel("(获取授权请加群:462510942)", self)
  self.lb5 = QLabel("(请勿更改机器码,否则无法授权)", self)
  self.lineEdit2 = QLineEdit("", self)
  self.lineEdit1 = QLineEdit("", self)
  self.combo = QComboBox(self)
  self.combo.addItem("0、请选择抢购方案")
  self.combo.addItem("1、加购物车")
  self.combo.addItem("2、不加购物车")
  self.combo.addItem("3、抢购优惠券")
 
  # self.lineEdit.move(200,100)
  self.lb0.move(50, 100)
  self.lbl.move(50, 150)
  self.lb2.move(50, 200)
  self.lb3.move(50, 250)
  self.lb4.move(250, 250)
  self.lb5.move(250, 200)
  self.lineEdit2.move(100, 200)
  self.lineEdit1.move(100, 250)
  self.setGeometry(300, 300, 300, 200)
  self.setWindowTitle('QComboBox')
  self.show()
  self.dateTimeEdit = QtWidgets.QDateTimeEdit()
  self.dateTimeEdit.setGeometry(QtCore.QRect(140, 50, 121, 22))
  self.dateTimeEdit.setDateTime(QtCore.QDateTime(QtCore.QDate(2018, 11, 1), QtCore.QTime(9, 0, 0)))
  self.dateTimeEdit.setObjectName("dateTimeEdit")
 
  gridLayout = QGridLayout()
  gridLayout.addWidget(usr, 0, 0, 1, 1)
  gridLayout.addWidget(pwd, 1, 0, 1, 1)
  gridLayout.addWidget(self.lb0, 2, 0, 1, 1)
  gridLayout.addWidget(self.combo, 0, 1, 1, 3)
  gridLayout.addWidget(self.dateTimeEdit, 1, 1, 1, 3)
  gridLayout.addWidget(self.lineEdit, 2, 1, 1, 3)
 
  sqBtn = QPushButton("授权")
  okBtn = QPushButton("确定")
  cancelBtn = QPushButton("关闭软件")
  btnLayout = QHBoxLayout()
 
  btnLayout.setSpacing(60)
  btnLayout.addWidget(okBtn)
  btnLayout.addWidget(cancelBtn)
  btnLayout.addWidget(sqBtn)
 
  dlgLayout = QVBoxLayout()
  dlgLayout.setContentsMargins(40, 40, 40, 40)
  dlgLayout.addLayout(gridLayout)
  dlgLayout.addStretch(40)
  dlgLayout.addLayout(btnLayout)
 
  self.setLayout(dlgLayout)
  okBtn.clicked.connect(self.accept)
  cancelBtn.clicked.connect(self.reject)
  sqBtn.clicked.connect(self.cpuid)
  self.setWindowTitle("VN辅助抢购软件")
  self.resize(600, 400)
 
  self.thread_handle = None
 
 def thread_function(self,index):
  # 需要在线程加一个全局变量的判断 用于终止死循环 用来切换方案
  data = self.cpuid1[2] + self.cpuid1[5] + min(self.cpuid1) + self.cpuid1[-5] + self.cpuid1[1] + self.cpuid1[3] + self.cpuid1[4] + max(self.cpuid1) + self.cpuid1[1] + \
    self.cpuid1[-1] + self.cpuid1[-3] + "V" + "N" + self.cpuid1[-2] + self.cpuid1[0] + self.cpuid1[-4]
  if self.lineEdit1.text() == data and self.lineEdit2.text() == self.cpuid1:
   if index==0:
    self.lbl.setText("请选择抢购方案,然后点击确定")
   elif index==1:
    self.lbl.setText("成功调用加购物车方案")
    self.gouwubuy()
   elif index==2:
    self.lbl.setText("成功调用不加购物车方案")
    self.buy()
   else:
    self.lbl.setText("成功调用抢券方案")
    self.quanbuy()
  else:
   self.lbl.setText("请输入正确的授权码")
 
 def accept(self):
  # 线程创建
  self.thread_handle = threading.Thread(target=LoginDlg.thread_function,args=(self,self.combo.currentIndex()))
  self.thread_handle.start()
  return
 
 def gouwubuy(self):
  browser.get("https://cart.taobao.com/cart.htm")
  # 点击购物车里全选按钮
  buyt = self.dateTimeEdit.text()
  buyti = re.findall(" (.*)",buyt)
  buytime = buyti[0]+":00.000000"
  while True:
   now = datetime.datetime.now().strftime('%H:%M:%S.%f')
   # 对比时间,时间到的话就点击结算
   if now > buytime:
    # 点击结算按钮
    try:
     if browser.find_element_by_id("J_Go"):
      browser.find_element_by_id("J_Go").click()
    except:
     pass
    try:
     if browser.find_element_by_link_text('提交订单'):
      browser.find_element_by_link_text('提交订单').click()
      now1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
      self.lbl.setText("提交订单时间为:%s"% now1)
    except:
     pass
 
 def buy(self):
  browser.get(self.lineEdit.text())
  while True:
   try:
    if browser.find_element_by_link_text('立即购买'):
     browser.find_element_by_link_text('立即购买').click()
   except:
    pass
   try:
    if browser.find_element_by_link_text('提交订单'):
     browser.find_element_by_link_text('提交订单').click()
     now1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
     self.lbl.setText("提交订单时间为:%s" % now1)
     break
   except:
    pass
 
 def quanbuy(self):
  browser.get(self.lineEdit.text())
  while True:
   now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
   # 对比时间,时间到的话就点击结算
   try:
    if browser.find_element_by_link_text('立刻抢'):
     browser.find_element_by_link_text('立刻抢').click()
   except:
    pass
   try:
    if browser.find_element_by_link_text('点击领券'):
     browser.find_element_by_link_text('点击领券').click()
   except:
    pass
 
 def cpuid(self):
  w = wmi.WMI()
  cpus = w.Win32_Processor()
  for u in cpus:
   self.cpuid1 = u.ProcessorId
   self.lineEdit2.setText(self.cpuid1)
 
def login():
 # 打开淘宝登录页,并进行扫码登录
 browser.get("https://www.taobao.com")
 time.sleep(3)
 if browser.find_element_by_link_text("亲,请登录"):
  browser.find_element_by_link_text("亲,请登录").click()
 time.sleep(3)
 
if __name__ == '__main__':
 browser = webdriver.Chrome()
 browser.maximize_window()
 login()
 app = QApplication(sys.argv)
 dlg = LoginDlg()
 dlg.show()
 dlg.exec_()
 app.exit()

到此这篇关于python抢购软件/插件/脚本附完整源码的文章就介绍到这了,更多相关python抢购源码内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python使用Image处理图片常用技巧分析
Jun 01 Python
Python 两个列表的差集、并集和交集实现代码
Sep 21 Python
Python中矩阵创建和矩阵运算方法
Aug 04 Python
Django添加favicon.ico图标的示例代码
Aug 07 Python
python 实现UTC时间加减的方法
Dec 31 Python
django中ORM模型常用的字段的使用方法
Mar 05 Python
django使用django-apscheduler 实现定时任务的例子
Jul 20 Python
Python如何调用外部系统命令
Aug 07 Python
python随机模块random使用方法详解
Feb 14 Python
python 第三方库paramiko的常用方式
Feb 20 Python
Python re.sub 反向引用的实现
Jul 07 Python
Appium中scroll和drag_and_drop根据元素位置滑动
Feb 15 Python
Python 求向量的余弦值操作
Mar 04 #Python
django使用多个数据库的方法实例
Mar 04 #Python
Python使用paramiko连接远程服务器执行Shell命令的实现
Mar 04 #Python
Python 调用C++封装的进一步探索交流
Mar 04 #Python
使用Python webdriver图书馆抢座自动预约的正确方法
Mar 04 #Python
Python与C/C++的相互调用案例
Mar 04 #Python
解决Python import .pyd 可能遇到路径的问题
Mar 04 #Python
You might like
用PHP制作静态网站的模板框架(三)
2006/10/09 PHP
用PHP和ACCESS写聊天室(三)
2006/10/09 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
sina的lightbox效果。
2007/01/09 Javascript
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
js加强的经典分页实例
2013/03/15 Javascript
JavaScript中的数值范围介绍
2014/12/29 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
JavaScript中的操作符类型转换示例总结
2016/05/30 Javascript
原生js实现轮播图
2017/02/27 Javascript
微信小程序自定义模态对话框实例详解
2017/08/16 Javascript
VsCode插件整理(小结)
2017/09/14 Javascript
在Angular中使用JWT认证方法示例
2018/09/10 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
2019/07/10 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
[01:40]2014DOTA2国际邀请赛 三冰SOLO赛后采访恶搞
2014/07/09 DOTA
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python 中的int()函数怎么用
2017/10/17 Python
pygame实现简易飞机大战
2018/09/11 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
Django认证系统实现的web页面实现代码
2019/08/12 Python
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
2018/05/28 HTML / CSS
GNC健安喜美国官网:美国第一营养品牌
2016/07/22 全球购物
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
教育学专业实习生的自我鉴定
2013/11/26 职场文书
公司市场部岗位职责
2013/12/02 职场文书
计算机求职自荐信范文
2014/04/19 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
物业管理交接协议书
2016/03/24 职场文书
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
2021/04/01 PHP
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python