宣言する
このブログでは、サーバー側のプログラムも、有料のスナップアップ ソフトウェアも提供していません。
このブログは、セレン自動化ツールの学習専用です。
会社の正当な権利と利益を侵害する場合は、私にプライベート メッセージを送信してください。関連するコードはできるだけ早く削除されます。
序文
休暇中に自分の手が他の人ほど速くないといつもため息をついている友人はいますか? 明らかに気に入ったものは、次の秒で売り切れます. スピードを疑う必要はありません. 時には、人間とスクリプトのどちらで注文しているのかわからないこともあります.
今日は、月餅を買うための Python バージョンのスクリプトを紹介します. 魔法を使って魔法を倒す必要があります! 多くを言わないで、ただそれをしてください。
原理
今日私が使いたいのは、テスト ツールのライブラリです: Selenium
Selenium は、Web サイトをテストするための自動テスト ツールで、Chrome、Firefox、Safari などの主流のインターフェイス ブラウザーや、phantomJS インターフェイスのないブラウザーなど、さまざまなブラウザーをサポートしています。
Windows、Linux、IOS、Android などの複数のオペレーティング システムをサポートしています。
今日では、月餅の購入を自動化するために使用しています. 実際、このツールを使用して、ログイン、ショッピング カート内のアイテムの選択、購入の注文など、人間のブラウザーの対応する操作を「シミュレート」します。 、 等々。
セレンをインストールする
方法1
pip install Selenium
方法 2
pip のインストールに失敗した場合は、pycharm ツールを使用してダウンロードできます。
中国では次のデータ ソースを使用できます。
Selenium で使用可能なデータ ソースを選択してください
ブラウザ ドライバをインストールする
ダウンロード
Selenium3.x はブラウザーを呼び出し、webdriver ドライバー ファイルが必要です。次の対応するシステム クロムを選択してダウンロードし、
Chrome ドライバー ファイルをダウンロードします。
環境変数の構成
[マイ コンピュータ] –> [プロパティ] –> [システム設定] –> [詳細] –> [環境変数] –> [システム変数] –> [パス] で
、chromexxx.zip ファイルをダウンロードしたディレクトリを [パス] の値に追加します。例: パス フィールド F:\download
コード開発
# !/usr/bin/env python
# -*- coding: utf-8 -*-
# 2022/09/03
from selenium import webdriver
import datetime
import time
class Seckill():
def __init__(self,startTime, choose):
self.startTime = startTime
self.choose = choose
def login(self,browser):
browser.get("https://www.taobao.com")
time.sleep(2)
if browser.find_element_by_link_text("亲,请登录"):
browser.find_element_by_link_text("亲,请登录").click()
print("请在15秒内完成扫码")
time.sleep(15)
browser.get("https://cart.taobao.com/cart.htm")
time.sleep(3)
now = datetime.datetime.now()
print('登陆成功:', now.strftime('%Y-%m-%d %H:%M:%S'))
def buy(self,browser):
if self.choose == 2:
print("请手动在浏览器中勾选需要秒杀的商品")
while True:
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
# 对比时间,时间到的话就点击结算
if now > self.startTime:
if self.choose == 1:
while True:
try:
if browser.find_element_by_id("J_SelectAll2"):
browser.find_element_by_id("J_SelectAll2").click()
break
except:
print("error : cant find buy button")
# 点击结算按钮
while True:
try:
if browser.find_element_by_link_text("结 算"):
browser.find_element_by_link_text("结 算").click()
print("结算成功")
break
except:
pass
while True:
try:
if browser.find_element_by_link_text('提交订单'):
browser.find_element_by_link_text('提交订单').click()
now1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
print("抢购成功时间:%s" % now1)
except:
print("再次尝试提交订单")
time.sleep(0.01)
def main():
pkTime = input("请输入秒杀时间,格式如(2022-09-03 15:40:00.000000):")
choose = int(input("到时间自动勾选购物车请输入“1”,否则输入“2”:"))
browser = webdriver.Chrome()
browser.maximize_window()
sk = Seckill(pkTime, choose)
# step1: 登陆
sk.login(browser)
# step2: 购买
sk.buy(browser)
if __name__ == "__main__":
main()
テスト
请输入抢购时间,格式如(2022-09-03 15:40:00.000000):2022-09-03 16:17:00.000000
到时间自动勾选购物车请输入“1”,否则输入“2”:1
请在15秒内完成扫码
登陆成功: 2022-09-03 16:14:45
结算成功
再次尝试提交订单
再次尝试提交订单
再次尝试提交订单
再次尝试提交订单
再次尝试提交订单
再次尝试提交订单
再次尝试提交订单
抢购成功时间:2022-09-03 16:17:15.498106
パニック購入時間に入ると、テスト用のブラウザ インターフェイスが自動的にポップアップし、ログイン インターフェイスに自動的に調整されます.このとき、自分でログインする必要があります:
ログイン後、ショッピング カートにジャンプ:
ifショッピング カートを自動的にチェックすることを選択した場合、それを行うことはできません。手動でチェックする必要があり、プログラムが自動的にチェックするのを待つ必要があります (自動チェックを選択することはお勧めしません)
。手動チェックを選択
し、パニック購入時間を指定するまで待ちます。スクリプトは1ミリ秒以内にパニック購入し、注文して支払いページにジャンプし、支払いを待ちます
知らせ
知らせ:
- テスト時、ショッピング カートを自動的にチェックする場合は「1」を入力してください。それ以外の場合は「2」を入力してください。このオプションは 2 を選択するのが最適です (1 を選択し、ショッピング カートにさらに商品がある場合は、自動的にそれらすべてをチェックしてください。
- スナップアップ時間の選択が現在の時間よりも後です