├── 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 | 
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 |
--------------------------------------------------------------------------------