python+selenium 搶小米mix 2s手機

小米手機的確太難搶了,所以試着寫了個程序玩下,還不知道行不行,明天試試!不過,還是要增加多個帳號一起搶,概率還是要大些,黃牛就是使用多帳號搶的!先附上源代碼,有什麼不對地方,大家幫忙指正!

#!/usr/bin/env python
# _*_ coding:utf-8 _*_

import time
import os
from selenium import webdriver


class SubscribeTel(object):
    def __init__(self, username, passwd):
        self.username = username
        self.passwd = passwd
        self.login_url = 'https://account.xiaomi.com/pass/serviceLogin'  # 小米登錄網址
        self.login_sec = 'https://account.xiaomi.com/pass/auth/security/home'  # 小米登錄成功後網址
        self.sub_url = 'https://item.mi.com/product/10000085.html'  # 小米min 2s 網址
        # 瀏覽器名稱
        self.driver_name = 'firefox'  # chrome firefox
        # 火狐瀏覽器第三方驅動
        self.executable_path = os.getcwd()+'/geckodriver'  # 獲取工程目錄下的火狐驅動 chromedriver

    def login(self):
        # 訪問登錄網址
        self.browser.get(self.login_url)
        # 填充用戶名
        self.browser.find_element_by_name('user').send_keys(self.username)
        time.sleep(0.3)
        # 填充密碼
        self.browser.find_element_by_name('password').send_keys(self.passwd)
        # 登錄
        self.browser.find_element_by_id('login-button').click()
        # 循環等待登錄,登錄成功,跳出循環
        while True:
            if self.browser.current_url[:50] != self.login_sec:
                time.sleep(1)
            else:
                # logbticket.info("登陸成功...")
                print('登錄成功...')
                break

    def start_sub(self):
        # 創建一個瀏覽器對象
        self.browser = webdriver.Firefox()
        # 設置窗口大小尺寸
        self.browser.set_window_size(1400, 1000)
        # 用戶登錄
        self.login()
        # 進入預購頁面
        self.browser.get(self.sub_url)
        self.browser.implicitly_wait(2)
        if self.browser.find_element_by_xpath("//a[@data-name='立即預約']"):
            self.browser.find_element_by_xpath("//a[@data-name='立即預約']").click()
        # 選擇內存
        self.browser.find_element_by_xpath("//li[@data-name='6GB+128GB']").click()
        # 選擇顏色
        self.browser.find_element_by_xpath("//img[@alt='白色']").click()
        while True:
            times = self.browser.find_element_by_xpath("//span[@class='time J_orderTime']").text
            if times == u'剩 00 時 00 分 00 秒':
                self.browser.find_element_by_xpath("//a[@data-name='加入購物車']").click()
                print('加入購物車成功...')
                break
            else:
                time.sleep(0.5)


if __name__ == '__main__':
    username = 'xxxxxxxxx'
    passwd = 'xxxxxxx'
    Tel = SubscribeTel(username, passwd)
    Tel.start_sub()


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章