-
导入库和模块
import numpy as np import pandas as pd import datetime from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.action_chains import ActionChains import time import re from time import sleep
-
这里导入了必要的库用于浏览器自动化(selenium)以及其他辅助模块。
-
-
初始化浏览器和打开网页
driver = webdriver.Chrome() url = "https://www.vmall.com/product/comdetail/index.html?prdId=10086499369393" driver.get(url)
- 初始化一个Chrome浏览器实例并打开指定URL。
-
点击“请登录”按钮
driver.find_element(By.XPATH, '//div[@class="css-901oao r-1a7l8x0 r-1enofrn r-ueyrd6 r-1pn2ns4 r-gy4na3"]').click()
-
使用XPath定位并点击登录按钮,进入登录页面。
-
-
输入用户名和密码
count = "输入自己的华为账号" pwd = "输入自己的华为密码" username_input = driver.find_element(By.XPATH, '//div/input[@class="hwid-input userAccount"]') password_input = driver.find_element(By.XPATH, '//div/input[@class="hwid-input hwid-input-pwd"]') username_input.send_keys(count) password_input.send_keys(pwd) driver.find_element(By.XPATH, '//div[@class="button-base-box"]').click()
-
定位用户名和密码输入框,输入账号和密码,然后点击登录按钮。
-
-
设置抢购的目标时间并找到抢购按钮
times = "2024-09-21 10:08:00.000" driver.find_element(By.XPATH, '//*[@id="prd-botnav-rightbtn"]/div/div') driver.find_element(By.XPATH, '//*[@id="prd-botnav-rightbtn"]/div/div').click()
-
设置抢购的目标时间,然后定位抢购按钮。
-
-
定时抢购逻辑
target_time = datetime.datetime.strptime(times, "%Y-%m-%d %H:%M:%S.%f") while True: now = datetime.datetime.now() if now >= target_time - datetime.timedelta(seconds=2): # 提前2秒启动 button = driver.find_element(By.XPATH, '//*[@id="prd-botnav-rightbtn"]/div/div') while True: try: button.click() driver.execute_script("arguments[0].click();", button) print("抢到啦!!!") break except Exception as e: print(f"点击失败:{e}") pass sleep(0.001) # 可以根据需要进一步减少或调节 else: sleep(0.1)
-
不断检查当前时间,直到距目标时间还剩2秒时,开始循环点击抢购按钮,直至点击成功。
-
内层循环中尝试点击按钮,如果失败则继续尝试,点击的间隔时间可根据需要调整。
-
总结
该代码实现了在特定时间进行网页抢购的功能。它首先进行登录操作,然后设定一个目标抢购的时间。最终在接近目标时间时,自动化点击抢购按钮,直到成功抢购产品。可以根据具体需求对代码进行优化和调整,如处理更多的异常情况、调整点击频率等。