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编写的微博应用
Oct 17 Python
pandas将DataFrame的列变成行索引的方法
Apr 10 Python
Python检查和同步本地时间(北京时间)的实现方法
Dec 03 Python
python爬虫刷访问量 2019 7月
Aug 01 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
Nov 05 Python
python 变量初始化空列表的例子
Nov 28 Python
Python3 main函数使用sys.argv传入多个参数的实现
Dec 25 Python
python中setuptools的作用是什么
Jun 19 Python
python模拟点击在ios中实现的实例讲解
Nov 26 Python
Django中的DateTimeField和DateField实现
Feb 24 Python
Windows安装Anaconda3的方法及使用过程详解
Jun 11 Python
python开发的自动化运维工具ansible详解
Aug 07 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原理之变量(Variables inside PHP)
2013/08/09 PHP
codeigniter集成ucenter1.6双向通信的解决办法
2014/06/12 PHP
Yii框架应用组件用法实例分析
2020/05/15 PHP
用JavaScript实现单继承和多继承的简单方法
2009/03/29 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
2014/09/06 Javascript
JQuery的attr 与 val区别
2016/06/12 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
jQuery+PHP实现上传裁剪图片
2020/06/29 jQuery
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
JavaScript中filter的用法实例分析
2019/02/27 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
2020/05/29 Javascript
Python实现的基数排序算法原理与用法实例分析
2017/11/23 Python
用Python进行简单图像识别(验证码)
2018/01/19 Python
python 删除列表里所有空格项的方法总结
2018/04/18 Python
JavaScript中的模拟事件和自定义事件实例分析
2018/07/27 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
Python中Proxypool库的安装与配置
2018/10/19 Python
python实现对服务器脚本敏感信息的加密解密功能
2019/08/13 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
Django ORM 查询表中某列字段值的方法
2020/04/30 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
为什么说python更适合树莓派编程
2020/07/20 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
中间件的定义
2016/08/09 面试题
商务宴请邀请函范文
2015/02/02 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书
2015大学生求职信范文
2015/03/20 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
幼儿园保教工作总结2015
2015/10/15 职场文书
技术入股合作协议书
2016/03/21 职场文书