1. 程式人生 > >python 製作淘寶秒殺指令碼

python 製作淘寶秒殺指令碼

1.  安裝pycharm。網上教程很多。

2.  安裝 Selenium 庫。

Selenium支援很多瀏覽器,我選擇的是Firefox瀏覽器。

因為我這裡是Python3環境,自帶的又pip,所以安裝selenium直接使用pip安裝

安裝方法:

--開啟cmd;

--輸入命令進入Python36/Scripts(找到下圖的目錄)目錄下;

--輸入命令 pip install selenium;

--回車,等待自動安裝;

--當最後一行程式碼出現Successfully install selenium-XX時,表示安裝成功。

3. 外掛 FireBug

FireBug 是火狐瀏覽器的一款檢視程式碼元素的外掛,可以快速的定位元素,selenium的重點就是元素定位,只有定到位了,才能進行下一步操作。

安裝方法:

--開啟Firefox瀏覽器,點選右上角按鈕

--點選附加元件

--點選擴充套件

--搜尋firebug

  --點選安裝,重啟瀏覽器

  --測試安裝成功,按F12出現如下畫面,表示firebug已經安裝成功了

4. 安裝 驅動安裝 geckodriver(windows環境下)

檔案連結在下方。

使用方法:

1、下載完成解壓;

2、將 geckodriver 放到 該瀏覽器可執行檔案的路徑下

3、新增到環境變數中

5. 設定 pycharm

先建立一個工程

開啟 pycharm -> 開啟 file -> 點選 setting -> 點選最右邊的設定按鈕

點選 add, 在 Virtualenv Environment 和 System Interpreter 並選定找到本文給的 python 執行資料夾,Location 是自己建立的工作資料夾,裡面為空,參考操作如下:

開啟 pycharm -> 開啟 file -> 點選 setting

將 project Interpreter 設定為 本文給的檔案,或是自己本身的 python自帶執行庫

 

6. 新建一個python檔案

 輸入以下程式:

# -*- coding: utf-8 -*- 
from selenium import webdriver 
driver = webdriver.Firefox() 
driver.get("https://www.baidu.com")

得到如下:

則成功搭建好環境。

 

7. 淘寶秒殺程式

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 2018/09/05
# 淘寶秒殺指令碼,掃碼登入版
import os
from selenium import webdriver
import datetime
import time
from os import path
from selenium.webdriver.common.action_chains import ActionChains

d = path.dirname(__file__)
abspath = path.abspath(d)


driver = webdriver.Firefox()
driver.maximize_window()


def login():
    # 開啟淘寶登入頁,並進行掃碼登入
    driver.get("https://www.taobao.com")
    time.sleep(3)
    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")
    time.sleep(3)
    # 點選購物車裡全選按鈕
    # if driver.find_element_by_id("J_CheckBox_939775250537"):
    #     driver.find_element_by_id("J_CheckBox_939775250537").click()
    # if driver.find_element_by_id("J_CheckBox_939558169627"):
    #     driver.find_element_by_id("J_CheckBox_939558169627").click()
    if driver.find_element_by_id("J_SelectAll1"):
        driver.find_element_by_id("J_SelectAll1").click()
    now = datetime.datetime.now()
    print('login success:', now.strftime('%Y-%m-%d %H:%M:%S'))

def buy(buytime):
    while True:
        now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
        # 對比時間,時間到的話就點選結算
        if now > buytime:
            try:
                # 點選結算按鈕
                if driver.find_element_by_id("J_Go"):
                    driver.find_element_by_id("J_Go").click()
                driver.find_element_by_link_text('提交訂單').click()
            except:
                time.sleep(0.1)
        print(now)
        time.sleep(0.1)


if __name__ == "__main__":
  #  times = input("請輸入搶購時間:")
    # 時間格式:"2018-09-06 11:20:00.000000"
    login()
    buy("2018-10-22 18:55:00.000000")

以上程式是參照對應的 html 原始碼的對應元素所選擇的。舉例如下:

中對應的 J_SelectAll1 對應如下:

 

關於 selenium 和 html 原始碼的互動以後有時間再來研究。

 

 

資料連結如下:

https://download.csdn.net/download/hc372893308/10738737