看論壇里有好多大神上傳了秒殺神器,我是一個初學者,寫了一段代碼,但是根本實現不了毫秒級的秒殺,只能做到“秒點”,但是無論如何,我也突破不了這個瓶頸,今天分享給大家,希望大家能給出一些改進的措施。
運行環境:PY3.6,安裝selenium
需要自備谷歌瀏覽器,及其對應版本的瀏覽器驅動,並將驅動路徑加入PATH中。
代碼里只寫了點擊搶購和點擊提交訂單這兩步,沒寫付款的步驟,因為如果提交成功了,付款就不着急了。
請在寶貝開始秒殺前1分鍾運行腳本
下面是代碼:
當然在學習Python的道路上肯定會困難,沒有好的學習資料,怎么去學習呢?
學習Python中有不明白推薦加入交流Q群號:928946953
群里有志同道合的小伙伴,互幫互助, 群里有不錯的視頻學習教程和PDF!
還有大牛解答!
from selenium import webdriver as wb import time from selenium.common.exceptions import NoSuchElementException, TimeoutException, ElementNotVisibleException from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC url = { 'LoginInPage':'https://login.taobao.com/member/login.jhtml', #要秒殺的寶貝頁面地址,根據需要進行替換 'test':'https://detail.tmall.com/item.htm?spm=a230r.1.14.41.2e2f6941HuLj38&id=604693559175&ns=1&abbucket=6' } options = wb.ChromeOptions() prefs = { "profile.managed_default_content_settings.images": 2,#無圖模式 'permissions.default.stylesheet':2 } options.add_experimental_option('prefs', prefs)#無圖模式,如果啟用后不加載二維碼,請將此句注釋掉 IE = wb.Chrome() IE.maximize_window() IE.get(url['LoginInPage'])#掃碼登陸 time.sleep(10) IE.get(url['test'])#訪問你要秒殺的寶貝頁面 def wait(method, xpath):#等待開搶標志出現 while True: try: a = WebDriverWait(IE, 100, 0.01).until( EC.presence_of_element_located((method, xpath))).click() print('目標已找到') return a except TimeoutException or NoSuchElementException: print('你要的頁面找不到了,刷新一下重試') wait(By.ID,'J_LinkBuy') wait(By.CLASS_NAME,'go-btn')