Version Python du script de capture du gâteau de lune du festival de la mi-automne

insérez la description de l'image ici

déclarer

Ce blog ne fournit aucun programme côté serveur, ni aucun logiciel instantané payant.
Ce blog est uniquement destiné à l'apprentissage des outils d'automatisation du sélénium.
Si vous violez les droits et intérêts légitimes d'une entreprise, veuillez m'envoyer un message privé et le code correspondant sera supprimé dès que possible.

avant-propos

Y a-t-il des amis qui soupirent toujours que leurs mains ne sont pas aussi rapides que les autres pendant les vacances ? Les choses que vous aimez clairement seront épuisées dans la seconde qui suit. Ne doutez pas de votre rapidité. Parfois, vous ne savez pas si vous passez une commande avec un humain ou un script.
Aujourd'hui, je vais partager avec vous une version python du script pour acheter des gâteaux de lune. Il faut utiliser la magie pour vaincre la magie ! Ne dis pas grand chose, fais-le.

principe

Ce que je veux utiliser aujourd'hui, c'est une bibliothèque d'outils de test : Selenium
Selenium est un outil de test automatisé pour tester des sites Web. Il prend en charge divers navigateurs, notamment Chrome, Firefox, Safari et d'autres navigateurs d'interface grand public, ainsi que les navigateurs sans interface phantomJS.
Il prend en charge plusieurs systèmes d'exploitation tels que Windows, Linux, IOS, Android, etc.
Aujourd'hui, nous l'utilisons pour automatiser l'achat de gâteaux de lune. En fait, nous utilisons cet outil pour "simuler" les opérations correspondantes du navigateur humain, telles que la connexion, la sélection d'articles dans le panier, la passation d'une commande d'achat. , etc.

Installer Sélénium

voie 1

pip install Selenium

voie 2

Si l'installation de pip échoue, vous pouvez utiliser l'outil pycharm pour télécharger

Les sources de données suivantes peuvent être utilisées en Chine :
insérez la description de l'image ici
Sélectionnez une source de données disponible pour Selenium

insérez la description de l'image ici

Installer le pilote du navigateur

Télécharger

Selenium3.x appelle le navigateur doit avoir un fichier de pilote webdriver, sélectionnez le chrome système correspondant suivant à télécharger pour télécharger le
fichier de pilote Chrome

insérez la description de l'image ici

Configurer les variables d'environnement

Poste de travail -> Propriétés -> Paramètres système -> Avancé -> Variables d'environnement -> Variables système -> Chemin,
ajoutez le répertoire dans lequel vous avez téléchargé le fichier chromexxx.zip à la valeur Chemin. Par exemple : Champ de chemin F:\download

développement de code

# !/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()

test

请输入抢购时间,格式如(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

Après avoir entré l'heure d'achat de panique, l'interface du navigateur pour les tests apparaîtra automatiquement et s'adaptera automatiquement à l'interface de connexion. À ce stade, vous devez vous connecter par vous-même :
insérez la description de l'image ici
après vous être connecté, passez au panier :
si vous choisissez de vérifier automatiquement le panier, vous ne pourrez pas le faire. Vous devez le vérifier manuellement, et attendre que le programme le vérifie de lui-même (il n'est pas recommandé de choisir la vérification automatique), il est
recommandé de choisissez la vérification manuelle et
insérez la description de l'image ici
attendez jusqu'à ce que vous spécifiiez l'heure d'achat de panique, le script paniquera l'achat dans 1 milliseconde, passez la commande et passez à la page de paiement, en attendant votre paiement

Remarquer

Remarquer:

  • Lors du test, veuillez entrer "1" lorsqu'il est temps de vérifier automatiquement le panier, sinon, entrez "2", cette option est préférable de choisir 2 (si vous choisissez 1 et que votre panier contient plus de produits, il sera automatiquement vérifiez-les tous.
  • La sélection de l'heure d'accrochage est supérieure à l'heure actuelle

Je suppose que tu aimes

Origine blog.csdn.net/qq_31557939/article/details/126679134
conseillé
Classement