用Python selenium實現淘寶搶單機器人

一、痛點

各大電商在一些特定的日子都會開啟促銷活動,如618、雙十一等,有時還得盯著時間搶限量發售的商品,但你的成功率高嗎?是否經常會遇到App一直加載,刷新後發現商品被一掃而光瞭?事實是,很多和你競爭搶購商品的對手比你的手更快更準,因為他們很多都是能精準執行命令的機器人

氣不氣?沒關系這篇文章將手把手教你零基礎建設一個自己的機器人,幫你在設定好的時間自動下單,再也不用為搶不到心愛的寶貝煩惱瞭!

二、準備工作

在建設機器人之前,請確保你準備好瞭如下工具:

  • 一臺電腦:不需要多快多新,能用就行
  • Chrome瀏覽器:機器人將在Chrome上完成自動下單的工作
  • Python編程環境:別怕,你不需要會編程,代碼已經幫你寫好瞭。但你需要安裝一個軟件能讓它跑起來,所以需要簡單配置一下python的編程環境。Windows和Mac用戶,請按照相對應的方式配置。

2.1 “Windows 配置Python”

下列步驟適用於Windows系統。

Anaconda是一個開源的Python發行版本,集成瞭Python和眾多科學包。

  • 第一步:下載Anaconda Windows版本的64-Bit Graphical Installer
  • 第二步:安裝Anaconda
  • 第三步:打開Anaconda Navigator,點擊Launch Notebook或JupyterLab

然後你會看到這樣的畫面:

Jupyter Lab

看到右側的Notebook區域,添加一個Notebook,然後使用下面的代碼打造機器人!

2.2 “Mac 配置Python”

下列步驟適用於Intel Mac和M1 Mac。

  • 第一步:打開終端(command + space 激活Spotlight,輸入Terminal)

終端Terminal

  • 第二步:輸入pip3 install jupyter
  • 第三步:輸入pip3 install jupyter-lab
  • 第四步:輸入jupyter lab

然後你會看到這樣的畫面:

Jupyter Lab

看到右側的Notebook區域,添加一個Notebook,然後使用下面的代碼打造機器人!

三、代碼

以下代碼請在你剛才創建的Notebook中運行。

3.1 下載需要的程序包

# Selenium 常用於網頁的自動化測試,在此我們借助它自動化淘寶下單的過程
!pip install selenium
!which python

上面的代碼返回瞭/opt/anaconda3/bin/python,接下來就要用到這個地址。

3.2 下載一個小配件

  • 查看自己Chrome瀏覽器的版本(進入關於Chrome即可看到軟件版本)
  • 前往ChromeDriver的官方下載地址下載對應版本的chrome driver後,放在此/opt/anaconda3/bin 文件夾裡 
from selenium import webdriver
import datetime
import time

小技巧:這個時間可以用來快速設定搶購時間

now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
print(now)

2021-06-18 00:00:00.000000

3.3 機器人的零件

def login():
    # 打開淘寶首頁,通過掃碼登錄
    browser.get("https://www.taobao.com")
    if browser.find_element_by_link_text("請登錄"):
        browser.find_element_by_link_text("請登錄").click()
        print(f"請盡快掃碼登錄")
    time.sleep(10)
def picking():
    # 打開購物車列表頁面
    browser.get("https://cart.taobao.com/cart.htm")
    time.sleep(3)
    # method = 0全選購物車
    method = 0
    if method == 0:
        while True:
            try:
                if browser.find_element_by_id("J_SelectAll1"):
                    browser.find_element_by_id("J_SelectAll1").click()
                    break
            except:
                print(f"找不到購買按鈕")
    #method = 1 手動勾選
    else:
        print(f"請手動勾選需要購買的商品")
        time.sleep(5)
#等待搶購時間,定時秒殺,這裡我們定義一個buy函數
def buy(times):
    print(times)
    while True:
        now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
        # 對比時間,時間到的話就點擊結算
        if now > times:
            # 點擊結算按鈕
            while True:
                try:
                    if browser.find_element_by_link_text("結 算"):
                        browser.find_element_by_link_text("結 算").click()
                        print(f"結算成功,準備提交訂單")
                        break
                except:
                    pass
            # 點擊提交訂單按鈕
            while True:
                try:
                    if browser.find_element_by_link_text('提交訂單'):
                        browser.find_element_by_link_text('提交訂單').click()
                        print(f"搶購成功,請盡快付款")
                except:
                    print(f"再次嘗試提交訂單")
            time.sleep(0.01)

3.4 啟動機器人

browser = webdriver.Chrome()
login()
picking()

3.5 定時下單

order_time = input("請輸入搶購時間,格式如(2021-06-08 19:30:00.000000):")

請輸入搶購時間,格式如(2021-06-08 19:30:00.000000): 2021-06-08 19:55:00.000000

buy(order_time)

到此這篇關於用Python selenium實現淘寶搶單機器人的文章就介紹到這瞭,更多相關Python selenium淘寶搶單內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: