大家好,我是不學前端的前端程式設計師,
事情是這個樣子的,前幾天不是雙十一預購秒殺嘛
由於我女朋友比較笨,手速比較慢,就一直搶不到,她沒搶到特價商品就不開心,
她不開心,我也就不能跟著開心,就別提看6號的全球總決賽了
為了解決這個問題,就決定寫一個自動定時搶購的指令碼。
首先我的思路很簡單,就是讓「程式」幫我們自動開啟瀏覽器,進入淘寶,然後到購物車等待搶購時間,自動購買並支付。
匯入模組,我們需要一個時間模組,搶購的時間,還有一個Python的自動化操作。
程式碼如下:
import datetime #模組
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
import time
#全自動化Python程式碼操作
from selenium import webdriver
根據我們的思路,首先需要程式幫我們開啟谷歌瀏覽器,並輸入「www.taobao.com」,然後點選登入,進入到購物車。
times = "2021-11-04 21:00:00.00000000"
browser = webdriver.Chrome()
browser.get("https://www.taobao.com")
time.sleep(3) #點選
browser.find_element_by_link_text("親,請登入").click()
不過這裡有一個問題就是,我們不能把我們的賬戶、密碼寫在程式碼裡邊,這樣很容易洩露,所以這裡採取手動掃碼登入
print(f"請儘快掃碼登入")
time.sleep(10)
browser.get("https://cart.taobao.com/cart.htm")
time.sleep(3)
進入購物車,等待搶購時間然後購買。
首先這個程式不能幫我們去挑選商品,所以我們得提前把商品加入到購物車裡面。
等到了搶購時間,直接全選商品購買就可以了。
# 是否全選購物車
while True:
try:
if browser.find_element_by_id("J_SelectAll1"):
browser.find_element_by_id("J_SelectAll1").click()
break
except:
print(f"找不到購買按鈕")
while True:
#獲取電腦現在的時間, year month day
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
# 對比時間,時間到的話就點選結算
print(now)
#判斷是不是到了秒殺時間?
if now > times:
# 點選結算按鈕
while True:
try:
if browser.find_element_by_link_text("結 算"):
print("here")
browser.find_element_by_link_text("結 算").click()
print(f"主人,程式鎖定商品,結算成功")
break
except:
pass
# 點選提交訂單按鈕
while True:
try:
if browser.find_element_by_link_text('提交訂單'):
browser.find_element_by_link_text('提交訂單').click()
print(f"搶購成功,請儘快付款")
except:
print(f"主人,我已幫你搶到商品啦,您來支付吧")
break
time.sleep(0.01)