前言
在京東 淘寶中有很多特價商品,但是有些商品屬於限量購買,需要搶拍。有很多黃牛通過非法腳本獲取大量限購商品訂單來獲取利益。
那么像這種搶拍軟件是如何做到的呢
- python3
- selenium
- 火狐瀏覽器/谷歌瀏覽器
為什么一定要用到瀏覽器驅動呢?
因為Python語言是無法直接對瀏覽器下達指令的,所以需要一個翻譯(驅動)對Python下達的指令進行轉發
2. 通過函數去完成相關的功能
def login(): # 打開淘寶登錄頁,並進行掃碼登錄 browser.get("https://www.taobao.com") # 等待頁面加載 time.sleep(1) if __name__ == "__main__": browser = webdriver.Firefox(executable_path='./geckodriver.exe')
這樣就可以自動打開瀏覽器

if browser.find_element_by_link_text("親,請登錄"): browser.find_element_by_link_text("親,請登錄").click() browser.find_element_by_xpath('//*[@id="login"]/div[1]/i').click() print("請在10秒內完成掃碼") # 通過用戶操作手機進行掃碼 time.sleep(3) browser.get("https://cart.taobao.com/cart.htm") time.sleep(1)
now = datetime.datetime.now() print('login success:', now.strftime('%Y-%m-%d %H:%M:%S'))
def buy(times): # 死循環 while True: now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') # 購買時間誤差不能超過1秒,所以要用毫秒級別的單位
if now > times: while True: try: if browser.find_element_by_id("J_SelectAll2"): browser.find_element_by_id("J_SelectAll2").click() break except: print("找不到購買按鈕") # 點擊結算按鈕 while True: try: if browser.find_element_by_link_text("結 算"): browser.find_element_by_link_text("結 算").click() print("結算成功") break except: pass
while True: try: if browser.find_element_by_link_text('提交訂單'): browser.find_element_by_link_text('提交訂單').click() now1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') print("搶購成功時間:%s" % now1) break except: print("再次嘗試提交訂單") time.sleep(0.01)
times = input("請輸入搶購時間,格式如(2021-08-16 11:20:00.000000):") buy(times)

