├── README.md ├── chromedriver.exe ├── chromedriver_win32 ├── chromedriver.exe └── r.d ├── me.jpg ├── qun.jpg ├── shoppingmiao.py ├── shoppingmiao_jd.py └── shoppingmiao_vip.py /README.md: -------------------------------------------------------------------------------- 1 | # ShoppingMiao 2 | 购物喵秒杀、抢购、低价购等内容的研究、测试。请不要用于京东、淘宝、天猫、小米有品、苏宁易购、考拉海购、唯品会等平台的秒杀、抢购、低价购等。
3 | 请注意:本插件仅可用于研究测试使用,不可用于其他用途。使用于其他用途,后果自负。
4 | #### 本人话少,欢迎Star
5 | * 更新支持
6 | * 更新
7 | * 更新
8 | ![wechat](https://www.qxn110.com/wp-content/uploads/2020/02/me.jpg)
9 | Author:Reg_coco
10 | 11 | ### CENTOS: 12 | yum install -y python36
13 | yum install -y python36-setuptools
14 | yum install -y python36-pip
15 | pip --default-timeout=100 install selenium #国内镜像:pip install --index https://mirrors.ustc.edu.cn/pypi/web/simple/ selenium
16 | 17 | ### DEBIAN/UBUNTU: 18 | sudo apt-get update
19 | sudo apt-get install python3.6
20 | pip --default-timeout=100 install selenium #国内镜像:pip install --index https://mirrors.ustc.edu.cn/pypi/web/simple/ selenium
21 | 22 | ### WINDOWS: 23 | 安装python3
24 | 安装pip
25 | pip --default-timeout=100 install selenium #国内镜像:pip install --index https://mirrors.ustc.edu.cn/pypi/web/simple/ selenium
26 | -------------------------------------------------------------------------------- /chromedriver.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yikingchu/ShoppingMiao/7a7090f357e1e5d6b8060ebf77afb6b2e8c27059/chromedriver.exe -------------------------------------------------------------------------------- /chromedriver_win32/chromedriver.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yikingchu/ShoppingMiao/7a7090f357e1e5d6b8060ebf77afb6b2e8c27059/chromedriver_win32/chromedriver.exe -------------------------------------------------------------------------------- /chromedriver_win32/r.d: -------------------------------------------------------------------------------- 1 | .. 2 | -------------------------------------------------------------------------------- /me.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yikingchu/ShoppingMiao/7a7090f357e1e5d6b8060ebf77afb6b2e8c27059/me.jpg -------------------------------------------------------------------------------- /qun.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yikingchu/ShoppingMiao/7a7090f357e1e5d6b8060ebf77afb6b2e8c27059/qun.jpg -------------------------------------------------------------------------------- /shoppingmiao.py: -------------------------------------------------------------------------------- 1 | #!usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | # Author:Reg_coco 4 | # www.qxn110.com 5 | # Wechat: yikunzhu 6 | from selenium import webdriver 7 | import datetime 8 | import time 9 | 10 | #创建浏览器对象 11 | driver = webdriver.Chrome() 12 | #窗口最大化显示 13 | driver.maximize_window() 14 | 15 | def login(url,mall): 16 | ''' 17 | 登陆函数 18 | 19 | url:商品的链接 20 | mall:商城类别 21 | ''' 22 | driver.get(url) 23 | driver.implicitly_wait(10) 24 | time.sleep(2) 25 | #淘宝和天猫的登陆链接文字不同 26 | if mall=='1': 27 | #找到并点击淘宝的登陆按钮 28 | driver.find_element_by_link_text("亲,请登录").click() 29 | elif mall=='2': 30 | #找到并点击天猫的登陆按钮 31 | driver.find_element_by_link_text("请登录").click() 32 | elif mall=='3': 33 | # 找到并点击小米有品 34 | driver.find_element_by_link_text("登录").click() 35 | elif mall=='4': 36 | # 找到并点击苏宁易购 37 | driver.find_element_by_link_text("请登录").click() 38 | elif mall=='5': 39 | # 找到并点击考拉海购 40 | driver.find_element_by_link_text("登录").click() 41 | print("请在30秒内完成登录") 42 | #用户扫码登陆 43 | time.sleep(30) 44 | 45 | def buy(buy_time,mall): 46 | ''' 47 | 购买函数 48 | 49 | buy_time:购买时间 50 | mall:商城类别 51 | 52 | 获取页面元素的方法有很多,获取得快速准确又是程序的关键 53 | 在写代码的时候运行测试了很多次,css_selector的方式表现最佳 54 | ''' 55 | #淘宝 56 | if mall=='1': 57 | #"立即购买"的css_selector 58 | btn_buy='#J_juValid > div.tb-btn-buy > a' 59 | #"立即下单"的css_selector 60 | btn_order='#submitOrderPC_1 > div.wrapper > a' 61 | #天猫 62 | elif mall=='2': 63 | btn_buy = '#J_LinkBuy' 64 | btn_order = '#submitOrderPC_1 > div > a' 65 | #小米有品 //*[@id="root"]/div/div[3]/div/div[1]/div[1]/div[2]/div[7]/div[1]/a[2] 66 | elif mall=='3': 67 | btn_buy='//*[@id="root"]/div/div[3]/div/div[1]/div[1]/div[2]/div[7]/div[1]/a[2]' 68 | btn_order='#root > div > div[3] > div[1] > div[2] > div[6] > a' 69 | #苏宁易购 70 | elif mall=='4': 71 | btn_buy='#buyNowAddCart' 72 | btn_order='#submit-btn' 73 | #考拉海购 74 | elif mall=='5': 75 | btn_buy='#buyBtn' 76 | btn_order='#orderInfoBox > div.oShow > div.m-settlement > div.paybox.f-cb > div.amountbox.f-fr > div.btnrow.f-cb > a' 77 | #原来的方法 78 | while True: 79 | #现在时间大于预设时间则开售抢购 80 | if datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')>=buy_time: 81 | try: 82 | #找到“立即购买”,点击 83 | if driver.find_element_by_css_selector(btn_buy): 84 | driver.find_element_by_css_selector(btn_buy).click() 85 | break 86 | #time.sleep(0.1) 87 | except: 88 | pass 89 | 90 | # while True: 91 | # #现在时间大于预设时间则开售抢购 92 | # if datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')>buy_time: 93 | # try: 94 | # #找到“立即购买”,点击 95 | # if driver.find_element_by_xpath(btn_buy): 96 | # driver.find_element_by_xpah(btn_buy).click() 97 | # break 98 | # time.sleep(0.1) 99 | # except: 100 | # time.sleep(0.3) 101 | 102 | while True: 103 | try: 104 | #找到“立即下单”,点击, 105 | if driver.find_element_by_css_selector(btn_order): 106 | driver.find_element_by_css_selector(btn_order).click() 107 | #下单成功,跳转至支付页面 108 | print("购买成功") 109 | break 110 | driver.refresh() 111 | except: 112 | driver.refresh() 113 | time.sleep(0.01) 114 | 115 | 116 | if __name__ == "__main__": 117 | # url = input("请输入商品链接:") 118 | # mall = input("请选择商城(淘宝 1 天猫 2 小米有品 3 苏宁易购 4 输入数字即可): ") 119 | # bt = input("请输入开售时间【2019-02-15(空格)12:55:50】") 120 | url = "https://detail.tmall.com/item.htm?id=536807026434&pid=mm_25282911_3455987_64923600426" 121 | mall = "2" 122 | bt = "2020-02-16 17:59:55" 123 | login(url, mall) 124 | buy(bt, mall) 125 | -------------------------------------------------------------------------------- /shoppingmiao_jd.py: -------------------------------------------------------------------------------- 1 | #!usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | # Author:Reg_coco 4 | # www.qxn110.com 5 | # Wechat: yikunzhu 6 | # 京 7 | from selenium import webdriver 8 | import datetime 9 | import time 10 | 11 | #创建浏览器对象 12 | driver = webdriver.Chrome() 13 | #窗口最大化显示 14 | driver.maximize_window() 15 | 16 | def login(url,mall): 17 | ''' 18 | 登陆函数 19 | 20 | url:商品的链接 21 | mall:商城类别 22 | ''' 23 | driver.get(url) 24 | driver.implicitly_wait(10) 25 | time.sleep(2) 26 | #京东专用 27 | if mall=='1': 28 | #找到并点击京东的登陆按钮 29 | driver.find_element_by_link_text("你好,请登录").click() 30 | 31 | print("请在30秒内完成登录") 32 | #用户扫码登陆 33 | time.sleep(30) 34 | 35 | def buy(buy_time,mall): 36 | ''' 37 | 购买函数 38 | 39 | buy_time:购买时间 40 | mall:商城类别 41 | 42 | 获取页面元素的方法有很多,获取得快速准确又是程序的关键 43 | 在写代码的时候运行测试了很多次,css_selector的方式表现最佳 44 | ''' 45 | 46 | if mall=='1': 47 | #"立即购买"的css_selector 48 | btn_buy='#InitCartUrl' 49 | #"中间到购物车"的css_selector 50 | btn_goon='#GotoShoppingCart' 51 | #"立即下单"的css_selector 52 | btn_order='#cart-floatbar > div > div > div > div.options-box > div.toolbar-right.toolbar-right-new > div.normal > div > div.btn-area > a' 53 | #"完成下单 54 | btn_allok='#order-submit' 55 | while True: 56 | #现在时间大于预设时间则开售抢购 57 | if datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')>=buy_time: 58 | try: 59 | #找到“立即购买”,点击 60 | if driver.find_element_by_css_selector(btn_buy): 61 | driver.find_element_by_css_selector(btn_buy).click() 62 | break 63 | #time.sleep(0.1) 64 | except: 65 | pass 66 | 67 | # while True: 68 | # #现在时间大于预设时间则开售抢购 69 | # if datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')>buy_time: 70 | # try: 71 | # #找到“立即购买”,点击 72 | # if driver.find_element_by_xpath(btn_buy): 73 | # driver.find_element_by_xpah(btn_buy).click() 74 | # break 75 | # time.sleep(0.1) 76 | # except: 77 | # time.sleep(0.3) 78 | 79 | while True: 80 | try: 81 | #找到“立即下单”,点击, 82 | if driver.find_element_by_css_selector(btn_goon): 83 | driver.find_element_by_css_selector(btn_goon).click() 84 | if driver.find_element_by_css_selector(btn_order): 85 | driver.find_element_by_css_selector(btn_order).click() 86 | if driver.find_element_by_css_selector(btn_allok): 87 | driver.find_element_by_css_selector(btn_allok).click() 88 | #下单成功,跳转至支付页面 89 | print("购买成功") 90 | break 91 | driver.refresh() 92 | except: 93 | driver.refresh() 94 | time.sleep(0.01) 95 | 96 | 97 | if __name__ == "__main__": 98 | # url = input("请输入商品链接:") 99 | # mall = input("请选择商城(淘宝 1 天猫 2 小米有品 3 苏宁易购 4 输入数字即可): ") 100 | # bt = input("请输入开售时间【2019-02-15(空格)12:55:50】") 101 | url = "https://item.jd.com/1600815280.html#crumb-wrap" 102 | mall = "1" 103 | bt = "2020-02-16 19:35:30" 104 | login(url, mall) 105 | buy(bt, mall) 106 | -------------------------------------------------------------------------------- /shoppingmiao_vip.py: -------------------------------------------------------------------------------- 1 | #!usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | # Author:Reg_coco 4 | # www.qxn110.com 5 | # Wechat: yikunzhu 6 | # 唯品会专用 7 | from selenium import webdriver 8 | import datetime 9 | import time 10 | 11 | #创建浏览器对象 12 | driver = webdriver.Chrome() 13 | #窗口最大化显示 14 | driver.maximize_window() 15 | 16 | def login(url,mall): 17 | ''' 18 | 登陆函数 19 | 20 | url:商品的链接 21 | mall:商城类别 22 | ''' 23 | driver.get(url) 24 | driver.implicitly_wait(10) 25 | time.sleep(2) 26 | #京东专用 27 | if mall=='1': 28 | #找到并点击唯品会的登陆按钮 29 | driver.find_element_by_link_text("请登录").click() 30 | 31 | print("请在30秒内完成登录") 32 | #用户扫码登陆 33 | time.sleep(30) 34 | 35 | def buy(buy_time,mall): 36 | ''' 37 | 购买函数 38 | 39 | buy_time:购买时间 40 | mall:商城类别 41 | 42 | 获取页面元素的方法有很多,获取得快速准确又是程序的关键 43 | 在写代码的时候运行测试了很多次,css_selector的方式表现最佳 44 | ''' 45 | 46 | if mall=='1': 47 | #"立即购买"的css_selector 48 | btn_buy='#J-cartAdd-submit' 49 | #"中间到购物车"的css_selector 50 | cocourl = 'https://cart.vip.com/te2/' 51 | btn_goon='#J_wrap > div.J_pop_bd.sidebarcom-pop-bd.ps-container > div.sidebarcom-pop-cnt > div > div.m-cart-oper > a' 52 | #"立即下单"的css_selector 53 | btn_order='#J_accountBar > a' 54 | #"完成下单 55 | btn_allok='#J_order_frmSave > a' 56 | while True: 57 | #现在时间大于预设时间则开售抢购 58 | if datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')>=buy_time: 59 | try: 60 | #找到“立即购买”,点击 61 | if driver.find_element_by_css_selector(btn_buy): 62 | driver.find_element_by_css_selector(btn_buy).click() 63 | break 64 | #time.sleep(0.1) 65 | except: 66 | pass 67 | 68 | # while True: 69 | # #现在时间大于预设时间则开售抢购 70 | # if datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')>buy_time: 71 | # try: 72 | # #找到“立即购买”,点击 73 | # if driver.find_element_by_xpath(btn_buy): 74 | # driver.find_element_by_xpah(btn_buy).click() 75 | # break 76 | # time.sleep(0.1) 77 | # except: 78 | # time.sleep(0.3) 79 | 80 | while True: 81 | try: 82 | #找到“立即下单”,点击,根据实际情况更改 83 | if driver.find_element_by_css_selector(btn_goon): 84 | driver.get(cocourl) 85 | if driver.find_element_by_css_selector(btn_order): 86 | driver.find_element_by_css_selector(btn_order).click() 87 | time.sleep(0.1) #根据实际情况更改时间,一般0.3最为适宜,0.1是我测试过最好最快的。越快当然越好 88 | if driver.find_element_by_css_selector(btn_allok): 89 | driver.find_element_by_css_selector(btn_allok).click() 90 | #下单成功,跳转至支付页面 91 | print("购买成功") 92 | break 93 | driver.refresh() 94 | except: 95 | driver.refresh() 96 | time.sleep(0.01) 97 | 98 | 99 | if __name__ == "__main__": 100 | # url = input("请输入商品链接:") 101 | # mall = input("唯品会专用 ") 102 | # bt = input("请输入开售时间【2019-02-15(空格)12:55:50】") 103 | url = "https://detail.vip.com/detail-1710614123-6917924994741851339.html" 104 | mall = "1" 105 | bt = "2020-02-16 22:54:00" 106 | login(url, mall) 107 | buy(bt, mall) 108 | --------------------------------------------------------------------------------