1. 程式人生 > >通過雲服務器實現淘寶京東搶拍器

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

__file__ odin 家裏 png bdr 模擬瀏覽器 pro 按鈕 baidu

馬上就要雙十一了,想在淘寶上幫女朋友搶一些禮物,網上下載了幾個搶拍器,普遍都有問題,最終還是決定自己制作一個搶拍器。由於秒殺也受到網絡和系統環境的影響,這裏打算使用高速穩定點的雲主機來協助實現。
在雲主機的選擇上,必須是能直接連接主幹網絡的雲主機,否則網絡延遲和在家裏上網區別不大。(開始以為阿裏雲秒殺會更快,但實際測試結果並不是這樣。挑了幾次後還是使用了常用的易邁雲。大家可以根據自己的喜好來挑選。)本文在後面會附帶具體操作方法。
一, 秒殺的設計要求:
a. 高穩定性,高網速
b. 高頻度模擬用戶操作
c. 通過阿裏京東的認證機制

二, 實現難點:
a. 淘寶的認證登錄如何解決。
b. 部分操作有可能被封號

c. 搶拍操作過快可能出現滑塊,導致搶拍失敗。

三, 理論上的幾種方法:
第一種:使用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")<br/>time.sleep(3)<br/>if driver.find_element_by_link_text("親,請登錄"):<br/>driver.find_element_by_link_text("親,請登錄").click()<br/>print("請在30秒內完成掃碼")<br/>time.sleep(30)<br/>driver.get("https://cart.taobao.com/cart.htm")<br/>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

技術分享圖片

  1. 回車後會彈出淘寶界面,通過手機掃描二維碼登錄。(這樣可以有效避免軟件被人加殼,被盜號的可能性)
    技術分享圖片
  2. 登錄後會自動跳轉到購物車,並全選購物車。如果你不需要技術分享圖片購物車全部被選中的話,可以勾掉全選,選擇需要搶的商品。
    1. 時間到後,系統會自動點擊結算和提交訂單。

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

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