最近準點搶東西 ,搶不到有點煩,寫了一個準點淘寶強東西的小程序。親測,已經搶到。
from selenium import webdriver
import datetime
import time
# 打開Chrome瀏覽器
from selenium.webdriver import ActionChains
browser = webdriver.Chrome()
browser.maximize_window()
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(2)
browser.find_element_by_link_text("密碼登錄").click()
# browser.find_element_by_id()
browser.find_element_by_id("fm-login-id").send_keys("")
browser.find_element_by_id("fm-login-password").send_keys('')
# 定位滑塊元素
source = browser.find_element_by_xpath("//*[@id='nc_1_n1z']")
# 定義鼠標拖放動作
ActionChains(browser).drag_and_drop_by_offset(source, 258, 0).perform()
# 等待js認證
time.sleep(5)
browser.find_element_by_xpath('//*[@id="login-form"]/div[4]/button').click()
time.sleep(1)
picking(0)
def picking(method):
# 打開購物車列表頁面
browser.get("https://cart.taobao.com/cart.htm")
time.sleep(3)
# 是否全選購物車
if method == 0:
while True:
try:
if browser.find_element_by_id("J_SelectAll1"):
browser.find_element_by_id("J_SelectAll1").click()
break
except:
print(f"找不到購買按鈕")
buy('2020-05-25 16:16:00.000000')
else:
print(f"請手動勾選需要購買的商品")
time.sleep(5)
def buy(times):
while True:
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
# 對比時間,時間到的話就點擊結算
if now > times:
# 點擊結算按鈕
while True:
try:
if browser.find_element_by_link_text("結 算"):
time.sleep(0.1)
browser.find_element_by_link_text("結 算").click()
print(f"結算成功,準備提交訂單")
break
except Exception as e:
print(e)
# 點擊提交訂單按鈕
time.sleep(1)
while True:
try:
if browser.find_element_by_link_text('提交訂單'):
browser.find_element_by_link_text('提交訂單').click()
print(f"搶購成功,請儘快付款")
except:
print(f"再次嘗試提交訂單")
time.sleep(1)
if __name__ == '__main__':
login()