如何撸一个华为手机抢购脚本

这篇具有很好参考价值的文章主要介绍了如何撸一个华为手机抢购脚本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

微信公众号:漫漫编程路
如果你觉得本文对你有帮助,欢迎点赞转发

前言

  自从华为偷偷上架了遥遥领先的华为 Mate 系列新款呢手机后,受到了大家的疯狂的追捧,机器现在可谓是一机难求。每天开启的限时抢购笔者抢了几次,简直每次都是秒没,最终等来一句话:“抢购失败,欢迎下次再来”。
在线抢购真的是大家拼网速、拼手速的时候,本着解放双手以及提高抢到的概率,于是我萌生了写个抢购脚本的想法,说干就干,于是花费了一晚上撸了个自动抢购华为 Mate 系列手机的脚本。源码文末会附链接。

原理

  其实原理非常简单,就是让机器模拟人的操作。通过 Python + Selemium + Browser Driver 实现UI自动化,模拟人在浏览器上的操作,机器操作时间是毫秒级别,远快于手速。

环境要求

  • Python:版本需要 3.6 以上(含)
  • Selemium:版本需要 4.12.0 以上(含)
  • Browser Driver:需要下载Browser版本相匹配的Driver,目前只支持 Chrome 浏览器

实现

  华为手机抢购大致分为以下几个部分,具体实现步骤如下:

  1. 进行相关配置
[user]
name=mobile
password=password

[product]
name=Mate60Pro+
id=10086764961298
color=宣白
version=16GB+512GB

[chrome]
# 不同系统的Chrome的用户数据目录不同
# Windows:userDataDir=C:/Users/用户名/AppData/Local/Google/Chrome/User Data
# Linux系统:userDataDir=~/.config/google-chrome/Default
# MacOS系统:userDataDir=/Users/用户名/Library/Application Support/Google/Chrome/Default
userDataDir=/Users/用户名/Library/Application Support/Google/Chrome/Default
  1. 进行浏览器设置
def __browser_setting(self):
    print("{0} 开始设置浏览器参数".format(datetime.now()))
    options = webdriver.ChromeOptions()
    options.add_argument(r"--user-data-dir={}".format(self.__config_get("chrome", "userDataDir")))
    options.add_argument(r"--profile-directory={}".format("Profile 5"))
    browser = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
    print("{0} 设置浏览器参数完成".format(datetime.now()))
    browser.maximize_window()
    self.browser = browser
  1. 访问华为商城
def __visit_official_website(self):
    print("{0} 开始进入华为官网".format(datetime.now()))
    self.browser.get('https://www.vmall.com/')
    print("{0} 已进入华为官网".format(datetime.now()))
  1. 登录华为账号
def __login(self):
    print("{0} 开始登录华为账号".format(datetime.now()))
    self.__goto_login_page()
    self.__submit_login()
    self.__check_is_login()
    if self.isLogin:
        print("{0} 当前登录账号为:{1}".format(datetime.now(), self.nickname))

    print("{0} 结束登录华为账号".format(datetime.now()))

def __goto_login_page(self):
    print("{0} 点击登录按钮".format(datetime.now()))
    login = WebDriverWait(self.browser, self.defaultTimeout).until(
        EC.presence_of_element_located((By.CLASS_NAME, "r-1a7l8x0"))
    )
    login.click()
    print("{0} 已跳转登录页面".format(datetime.now()))

def __submit_login(self):
    print("{0} 开始输入账号及密码".format(datetime.now()))
    input_elements = WebDriverWait(self.browser, self.defaultTimeout).until(
        EC.presence_of_all_elements_located((By.CLASS_NAME, "hwid-input"))
    )

    input_elements[0].send_keys(self.__config_get("user", "name"))
    input_elements[1].send_keys(self.__config_get("user", "password"))
    print("{0} 已输入账号及密码".format(datetime.now()))

    WebDriverWait(self.browser, self.defaultTimeout).until(
        EC.presence_of_element_located((By.CLASS_NAME, "hwid-login-btn"))
    ).click()
    print("{0} 发起登录请求".format(datetime.now()))
    self.browser.implicitly_wait(20)

def __check_is_login(self):
    try:
        self.browser.find_element(By.LINK_TEXT, "请登录")
        self.isLogin = False
        print("{0} 账号登录失败,请重试".format(datetime.now()))
    except NoSuchElementException:
        self.isLogin = True
        print("{0} 账号登录成功".format(datetime.now()))
        self.nickname = WebDriverWait(self.browser, self.defaultTimeout).until(
            EC.presence_of_element_located((By.CLASS_NAME, "r-1pn2ns4"))
        ).text
  1. 进入对应的手机详情页
def __visit_product_page(self):
    print("{0} 开始进入华为 {1} 产品详情页".format(datetime.now(), self.__config_get("product", "name")))
    self.browser.get("https://www.vmall.com/product/{0}.html".format(self.__config_get("product", "id")))
    self.browser.refresh()
    self.browser.implicitly_wait(20)
    print("{0} 已进入华为 {1} 产品详情页".format(datetime.now(), self.__config_get("product", "name")))
  1. 选择自己要抢购的手机颜色及版本
def __choose_product(self):
    print("{0} 开始选择手机规格".format(datetime.now()))
    sku_color = self.__config_get("product", "color")
    sku_version = self.__config_get("product", "version")
    WebDriverWait(self.browser, self.defaultTimeout).until(
        EC.presence_of_element_located((By.LINK_TEXT, f"{sku_color}"))
    ).click()
    WebDriverWait(self.browser, self.defaultTimeout).until(
        EC.presence_of_element_located((By.LINK_TEXT, f"{sku_version}"))
    ).click()
    print("{0} 选择手机规格完成,颜色:{1} 版本:{2}".format(datetime.now(), sku_color, sku_version))
  1. 轮训抢购开始倒计时,判断是否最后10秒,最后10秒内不断尝试抢购
def __countdown(self):
    while self.isCountdown:
        countdown_times = self.__get_countdown_time()
        if len(countdown_times) > 0:
            print("{0} 距离抢购开始还剩:{1}".format(datetime.now(), self.__format_countdown_time(countdown_times)))
            self.__set_start_buying(countdown_times)
            if not self.isStartBuying:
                time.sleep(1)

def __start_buying(self):
    while self.isStartBuying:
        countdown_times = self.__get_countdown_time()
        if len(countdown_times) > 0:
            print("{0} 距离抢购开始还剩:{1}".format(datetime.now(), self.__format_countdown_time(countdown_times)))
            button_element = WebDriverWait(self.browser, self.defaultTimeout).until(
                EC.presence_of_element_located((By.XPATH, "//div[@id='pro-operation']/a"))
            )
            button_element.click()
            time.sleep(0.0001)

  至此,一个简单的华为手机抢购脚本就大功告成了,需要注意的是,华为抢购流程会不断变化的,导致这个脚本可能会存在问题,需要及时调整

特别说明

  本脚本仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。
本文及本文所有资源文件,禁止任何公众号、自媒体进行任何形式的转载、发布。

源码地址

GitHub地址:ancoka/hw_seckill

关注我

下面的是我的公众号二维码图片,欢迎关注。

抢华为手机脚本,华为,智能手机,python文章来源地址https://www.toymoban.com/news/detail-713422.html

到了这里,关于如何撸一个华为手机抢购脚本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 实现抢购脚本--Mac 环境

    该脚本使用Selenium库来实现自动登录并在指定的时间购买商品。 mac 的safari浏览器本身已经集成了safaridriver,只要启用并开启即可,步骤如下: 终端启用safaridriver: 尝试运行safraidriver,看是否有权限问题。 Python 版本: 3.9.6 此脚本使用以下Python库: Selenium 您可以使用以下命令来

    2024年02月08日
    浏览(38)
  • 用Python制作抢购脚本,自动抢购飞天茅台,再也不要担心手慢无了

    前段时间老逛刷朋友圈,有个朋友发文说:每天早上 10 点守着,花了七天终于抢到了!!!并配上了一个茅台的图片。 老逛不喝酒也不懂酒,就去问了这哥们啥情况,这哥们说在京东抢了一瓶茅台酒,只花了 1499 元,这瓶酒原价 3000 左右。 我去京东看了看,搜索「茅台」第

    2024年02月05日
    浏览(64)
  • Python实现京东茅台抢购脚本, 原来这么简单

    前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 开发环境: python 3.8 运行代码 pycharm 2022.3.2 辅助敲代码 专业版 京东茅台抢购脚本可以分为以下几部分,具体实现步骤如下: 1. 登录京东账号 首先需要登录京东账号。 一个简单的方式是使用Python的 selenium 库。 在使用 seleniu

    2024年02月13日
    浏览(60)
  • Python实现京东茅台抢购脚本, 原来这样就可以了?

    京东茅台抢购脚本可以分为以下几部分,具体实现步骤如下: 登录京东账号 首先需要登录京东账号。一个简单的方式是使用Python的 selenium 库。在使用 selenium 库前,需要安装 selenium 库和对应的浏览器驱动。 示例代码如下所示: 注意:在使用 selenium 的时候,要配置对应的浏

    2024年02月14日
    浏览(70)
  • python selenium 模拟浏览器自动操作抢购脚本

    每逢秒杀,都在遗憾网速和手速慢没能抢购到商品吧。 手写一个脚本,让程序帮你抢,抢到的概率会大大提升。 废话不多说,直接上代码。 本实例以华为官网抢购手机为例

    2024年02月09日
    浏览(38)
  • 使用python脚本抢购天猫和淘宝商品,0秒下单

    最近想抢购一下淘宝和天猫的秒杀商品,md,老是抢不过别人,所以去github上找了一份抢购的代码。根据自己的需要,修改了一下。 最终的效果如下所示: 使用python脚本抢购天猫和淘宝商品,0秒下单 主要的实现思路 1. 使用selenium的debuggerAddress模式创建一个新的chrome浏览器,

    2024年02月11日
    浏览(42)
  • 【苹果】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本

    Iphone15来了,两年之约你还记得吗? 遂整合之前iphone13及iphone14的相关抢购代码,完成一个 SpringBoot监听Iphone15有货邮件提醒+python自动化脚本 小功能。 后端基于 SpringBoot ,通过 苹果官网进行有货接口调用 ,将 JSON结果解析分析 是否有货,并展示近10条有货记录列;可灵活监听

    2024年02月08日
    浏览(48)
  • 双11自制Python淘宝秒杀抢购脚本代码,女朋友夸个不停 !

    大家好,我是不学前端的前端程序员, 事情是这个样子的,最近不是双十一预购秒杀嘛 由于我女朋友比较笨,手速比较慢,就一直抢不到,她没抢到特价商品就不开心, 她不开心,我也就不能跟着开心,就别提好好打游戏了 为了解决这个问题,就决定写一个自动定时抢购的

    2024年02月19日
    浏览(46)
  • 我制作了python脚本自动抢购淘宝秒杀产品,学会优先享受双十一福利

    每到双十一,各位男性朋友们就要大吐血了,万一女朋友想要的东西还没有抢到,就要更加… 所以我便创造了这个自动抢购的脚本,希望对你们有用 思路很简单,就是让“程序”帮我们自动打开浏览器,进入淘宝,然后到购物车等待抢购时间,自动购买并支付。 导入模块,

    2024年02月11日
    浏览(47)
  • chatgpt赋能python:使用Python来进行抢购,如何轻松秒杀商品

    在现代社会,大量的人们使用电商平台来完成他们的购物需求。然而,在疯狂的购物节日时,例如\\\"双11\\\",商品往往会被抢购一空。为此,许多人希望能够使用自动化脚本,在秒级别内完成商品的购买,以避免人工购物时的抢购高峰。 Python是一种优秀的编程语言,因为它可以

    2024年02月07日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包