淘寶網秒殺怎么搶
2022-06-23|10:10|發(fā)布在分類 / 跨境開店| 閱讀:104
2022-06-23|10:10|發(fā)布在分類 / 跨境開店| 閱讀:104
正文
目錄
0 引言
1 環(huán)境
2 需求分析&前期準備
3 淘寶購物流程回顧
4 秒*的實現
5 代碼梳理
6 總結
0 引言
年中購物618大狂歡開始了,各大電商又開始了大力度的折扣促銷,我們的小胖又給大家謀了一波福利,淘寶app直接搜索:小胖發(fā)福利,每天領取三次粉絲專屬現金大紅包。
有了現金大紅包,如何做到更省錢的剁手呢?給大家提供一種思路,用python實現秒*訂單,借用自動化方式完成比較優(yōu)解。
1 環(huán)境
操作系統(tǒng):windows
python版本:3.7.2
2 需求分析&前期準備
2.0 需求分析
我們的目標是秒*淘寶的訂單,這里面有幾個關鍵點,首先需要登錄淘寶,其次你需要準備好訂單,比較后要在指定時間快速提交訂單。
登錄淘寶,這里就要用到一個爬蟲利器selenium,它是一個自動化測試工具,利用它我們可以驅動瀏覽器執(zhí)行特定的動作,如、下拉等等操作,所見即所得。另外對于一些 javascript 渲染的頁面來說,此種抓取方式非常有效。
2.1 selenium的安裝
selenium 的安裝很簡單,可采用如下方式。
pip install selenium
selenium安裝好之后,并不能直接使用,它需要與瀏覽器進行對接。這里拿chrome瀏覽器為例。若想使用selenium成功調用chrome瀏覽器完成相應的操作,需要通過chromedriver來驅動。
2.2 chromedriver的安裝
這里是chromedriver的地址。
我們在之前先來確認下我們使用的chrome瀏覽器版本。
通過chromedriver的鏈接,找到與之對應的chrome瀏覽器版本,根據你電腦系統(tǒng)的平臺類型進行。
完成之后,解壓,將其放置在python安裝路徑下scripts文件夾中即可
上述操作結束后,我們執(zhí)行如下命令,測試一下
from selenium import webdriver
# 打開chrome瀏覽器
browser = webdriver.chrome
代碼執(zhí)行后,若成功打開了瀏覽器,則證明你的chromedriver安裝的沒問題,可以正常愉快地使用selenium了。
接下來,我們先來回顧下淘寶購物流程。
3 淘寶購物流程回顧
3.3.1 首先要打開淘寶網站
https://www.taobao.com
換作使用seleuinm方式,代碼如下:
browser.get("https://www.taobao.com")
3.3.2 我們登錄淘寶才能進行下一步操作
換成seleuinm方式,代碼:
browser.find_element_by_link_text("親,請登錄").click
這時我們就要就跳到了一個掃碼登錄的頁面,我們用手機進行掃碼,登錄成功之后進行下一步。
3.3.3 登錄成功之后,我們來打開購物車,鏈接如下:
https://cart.taobao.com/cart.htm
換成seleuinm方式,代碼:
browser.get("https://cart.taobao.com/cart.htm")
3.3.4 我們想要全選購物車中的商品,直接全選即可
換成seleuinm方式,代碼:
browser.find_element_by_id("j_selectall1").click
注:若你的購物車商品比較多,又不想全選購買,那就 手動 勾選想要下單的商品。
3.3.5 勾選好商品后就可以“結算”下單
換成seleuinm方式,代碼即:
browser.find_element_by_link_text("結 算").click
3.3.6 等待提交完訂單后才算數
換成seleuinm方式,代碼即:
browser.find_element_by_link_text('提交訂單').click
3.3.7 訂單成功秒下之后,接下來的付款,慢慢來就好。
4 秒*的實現
秒*的實現,思路也很簡單。這里有兩個時間點,一是搶購時間,一是當前時間。只需要比較這兩個時間點,到了搶購時間立即下單即可。
記錄時間,需要使用datetime這個內置模塊,代碼如下:
import datetime
now = datetime.datetime.now.strftime('%y-%m-%d %h:%m:%s.%f')
5 代碼梳理
首先得登錄淘寶,這里我們定義一個login函數
def login:
# 打開淘寶首頁,通過掃碼登錄
browser.get("https://www.taobao.com")
time.sleep(3)
if browser.find_element_by_link_text("親,請登錄"):
browser.find_element_by_link_text("親,請登錄").click
print(f"請盡快掃碼登錄")
time.sleep(10)
接下來就是勾選購物車中的商品,這里我們定義一個picking函數
def picking(method):
# 打開購物車列表頁面
browser.get("https://cart.taobao.com/cart.htm")
time.sleep(3)
# 是否全選購物車
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"找不到購買按鈕")
else:
print(f"請手動勾選需要購買的商品")
time.sleep(5)
等待搶購時間,定時秒*,這里我們定義一個buy函數
def buy(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)
鏈接:https://chromedriver.storage.googleapis.com/index.html
這個問題還有疑問的話,可以加幕.思.城火星老師免費咨詢,微.信號是為: msc496。
推薦閱讀:
更多資訊請關注幕 思 城。
微信掃碼回復「666」
別默默看了 登錄\ 注冊 一起參與討論!