通過雲服務器實現淘寶京東搶拍器


馬上就要雙十一了,想在淘寶上幫女朋友搶一些禮物,網上下載了幾個搶拍器,普遍都有問題,最終還是決定自己制作一個搶拍器。由於秒殺也受到網絡和系統環境的影響,這里打算使用高速穩定點的雲主機來協助實現。

在雲主機的選擇上,必須是能直接連接主干網絡的雲主機,否則網絡延遲和在家里上網區別不大。(開始以為阿里雲秒殺會更快,但實際測試結果並不是這樣。挑了幾次后還是使用了常用的易邁雲。大家可以根據自己的喜好來挑選。)本文在后面會附帶具體操作方法。

一, 秒殺的設計要求:

  1. 高穩定性,高網速
  2. 高頻度模擬用戶操作
  3. 通過阿里京東的認證機制

 

二, 實現難點:

  1. 淘寶的認證登錄如何解決。
  2. 部分操作有可能被封號
  3. 搶拍操作過快可能出現滑塊,導致搶拍失敗。

 

三, 理論上的幾種方法:

第一種:使用selenium或者類似網頁按鍵的工具模擬瀏覽器提交訂單,優點是制作方便,安全不怕封號,速度也能達到毫秒級。缺點就是當網速卡或者搶的人太多的時候,可能由於網頁元素加載過慢,導致搶拍失敗。

第二種:模擬socket,直接提交訂單包文。優點是速度最快,不需要等待訂單確認界面,到時間直接提交訂單。缺點是制作比較復雜,尤其淘寶會每日更新加密算法,需要經常更新。據傳有封號的可能性,但是我還沒有被封號過。

 

下面針對兩種方法分別進行分析:

第一種:模擬瀏覽器操作

工具有很多,selenium和按鍵精靈都可以實現,推薦用selenium, 命令台操作,執行速度更快。

操作流程如下圖:

網上供參考的代碼示例:(Python),內容其實都大同小異,關鍵思路清楚就很好做了。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#2018/10/313
#淘寶秒殺,掃碼登錄版
import os
from selenium import webdriver
import datetime
import time
from os import path
 
d = path.dirname(__file__)
abspath = path.abspath(d)
chromedriver = abspath+"\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
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(5)
    # 這里需要自己在購物車里面選擇要結算的商品
    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("請輸入搶購時間:")
    login()
    buy(times)

如果需要打包好的軟件,也可以使用百度雲盤下載:

https://pan.baidu.com/s/1EU5YM3VgXBDgv7v3F5icEg

提取碼:b79e

 

下面講具體怎么操作:(感謝網上幾位大大的指導)

  1. 首先,你得有一台到多台雲主機(可以在阿里雲,易邁雲各建一台雲主機,使用兩個號來搶),這里僅以我常用易邁雲來舉例,具體使用什么雲服務器請自行選擇。不過易邁雲在穩定性和基干網絡方面測試下來還算不錯。參考網址:www.aiemy.com

         2.具體購買流程我就不多說了,系統選擇win2012就行。通過遠程桌面登錄到服務器。

將百度雲盤下載的文件解壓。首先安裝chrome67版(注意不是chromedriver.exe),

接着將taobao.exe和chromedriver.exe放入同一個文件夾下面,雙擊點開taobao.exe

 

         3.輸入搶拍的時間,注意時間格式(不要有中文符號)  年-月-日 時:分:秒 000000

4.回車后會彈出淘寶界面,通過手機掃描二維碼登錄。(這樣可以有效避免軟件被人加殼,被盜號的可能性)

6.登錄后會自動跳轉到購物車,並全選購物車。如果你不需要購物車全部被選中的話,可以勾掉全選,選擇需要搶的商品。

6.時間到后,系統會自動點擊結算和提交訂單。

 

通過模擬瀏覽器操作的方法暫時講到這里,理論上是在毫秒級搶拍,1秒內能夠鎖死訂單。最重要的就是兩點:網速和系統處理速度(這里的網速不是指帶寬,而是從計算機到淘寶核心服務器間的節點要盡可能的少,這也是為什么說要用雲服務器的原因)。下周再更新更快的方案,建議大家准備小號,避免被封。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM