雙十一秒殺商品,拼不贏手速,那我只能用Python指令碼了
阿新 • • 發佈:2018-11-12
整體流程是:
上淘寶->找到登入按鈕去登陸->在登入頁選擇密碼登入->填入賬號密碼登入->跳到購物車頁->點選全選按鈕,等約定時間,時間到馬上結算、下單。
詳情程式碼
import os from selenium import webdriver import datetime import time #需要下載deckodreiver firefox = os.path.abspath(r"E:\Program Files\Mozilla Firefox\firefox.exe") os.environ["webdriver.firefox.bin"] = firefox driver = webdriver.Firefox() driver.maximize_window() def login(uname, pwd): driver.get("https://www.taobao.com") if driver.find_element_by_link_text("親,請登入"): driver.find_element_by_link_text("親,請登入").click() input(uname, pwd) #點選購物車裡全選按鈕 if driver.find_element_by_id("J_SelectAll1"): driver.find_element_by_id("J_SelectAll1").click() # time.sleep(3) now = datetime.datetime.now() print('login success:', now.strftime('%Y-%m-%d %H:%M:%S')) def input(uname,pwd): time.sleep(3) #選擇密碼登入 if driver.find_element_by_id("J_Quick2Static"): driver.find_element_by_id("J_Quick2Static").click() time.sleep(3) #使用者名稱輸入 if driver.find_element_by_name("TPL_username"): for i in uname: driver.find_element_by_name("TPL_username").send_keys(i) time.sleep(0.5) time.sleep(3) #密碼輸入 if driver.find_element_by_name("TPL_password"): for j in pwd: driver.find_element_by_name("TPL_password").send_keys(j) time.sleep(0.5) time.sleep(3) #點選登入按鈕 if driver.find_element_by_id("J_SubmitStatic"): driver.find_element_by_id("J_SubmitStatic").click() time.sleep(3) driver.get("https://cart.taobao.com/cart.htm") time.sleep(2) def buy(buytime): while True: now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') if now == buytime: try: #點選結算按鈕 if driver.find_element_by_id("J_Go"): driver.find_element_by_id("J_Go").click() driver.find_element_by_link_text('提交訂單').click() except: time.sleep(1) print(now) time.sleep(1) if __name__=="__main__": #中文賬號記得decode編碼 login("賬號",'密碼') buy('')
這裡用了很多執行緒休眠,是因為太快的輸入,在登入的時候回出現滑動驗證框,所以sleep幾秒,儘量模仿人的操作。