import time from selenium import webdriver import datetime class Spider: def __init__(self, url): self.__base_url = url self.__headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36', } def get_url(self): global driver driver.get(self.__base_url) def login(self): global driver if driver.find_element_by_link_text("親,請登陸"): driver.find_element_by_link_text("親,請登陸").click() print("請在30秒內掃描登錄") time.sleep(30) driver.get("https://cart.taobao.com/cart.htm") def selectAll(self,method): global driver # 打開購物車列表頁面 driver.get("https://cart.taobao.com/cart.htm") time.sleep(3) # 是否全選購物車 if method == 0: while True: try: if driver.find_element_by_id("J_SelectAll1"): driver.find_element_by_id("J_SelectAll1").click() break except: # print(f"找不到購買按鈕") pass if method ==1 : print(f"請手動勾選須要購買的商品") time.sleep(30) def buy(self,times): global driver while True: now = datetime.datetime.now() # 對比時間,時間到的話就點擊結算 if now > times: # 點擊結算按鈕 while True: try: if driver.find_element_by_link_text("結 算"): driver.find_element_by_link_text("結 算").click() print(f"結算成功,準備提交訂單") break except: pass # 點擊提交訂單按鈕 while True: try: if driver.find_element_by_link_text('提交訂單'): driver.find_element_by_link_text('提交訂單').click() print(f"搶購成功,請儘快付款") except: # print(f"再次嘗試提交訂單") pass time.sleep(0.01) option = webdriver.ChromeOptions() option.add_argument('disable-infobars') driver = webdriver.Chrome(chrome_options=option) spider = Spider("https://www.taobao.com") spider.get_url() spider.login() #設置0爲全選、1爲手動 spider.selectAll(0) # 設置搶購時間 set_time = datetime.datetime(2019,6,6,1,25) spider.buy(set_time)