华为官方商城手机自动抢购脚本:自动抢Mate9/Mate9 Pro

闲言乱语 7920

2022年9月更新,本文内容早已失效,内容仅供研究。

注意:本脚本不会计划长期维护,所以不保证时效!

boom7和重复id的iphone7让华为玩了一把弯道超车,可堂堂一世界500强企业居然玩起了低级地耍猴把戏 - 饥渴营销,这真的好么?

已购入一加3T,把脚本放出来给需要的人用吧。

本脚本要封装成Chrome扩展程序,自行建立文件并添加至Chrome的扩展,核心文件都有了,你只需要找两个png图标文件替换一下就可以了。

主脚本main.js:

如何查找参数ID?

Chrome F12模式下右键某颜色或ROM配置,点击检查找到父节点li,就可以看到ec.selectGroupTagWithSku(1,8238),这个后面的四位数就是ID

setInterval(function () { 

	//------------------------以下是订单配置信息---------------------------//
	
	//华为的小机灵:每天次抢购活动会换参数的ID,所以颜色及内存参数非固定,请根据当日实际情况修改

	//配置颜色:苍穹灰=>7902, 月光银=>7904, 摩卡金=>7906, 香槟金=>7908, 陶瓷白=>7910, 黑色=>7912
	var $colorId = 7912;   

	//配置内存:4+32=>7914, 4+64=>7916, 6+128=>7918
	var $ramId = 7916;

	//设置地址: 默认一条地址就是0,多条按照顺序索引填写:0, 1, 2 分别对应第1, 2, 3条地址
	var $addressId = 0;	

	//开票信息
	var $invoiceId = 2;	//发票类型: 1、电子发票;2、纸质发票
	var $invoiceText = "公司发票抬头";	//发票抬头	

	//------------------------以下是脚本执行信息---------------------------//

	var $readyBtn = document.getElementsByClassName("honor-btn-ready")[0];
	if($readyBtn) window.location.reload();

	var $returnBtn = document.getElementById("back_to_activity_url"); 
	if($returnBtn) $returnBtn.click();

	//选择颜色
	var $color = document.getElementById("skuGroupTag-" + $colorId);
	if($color) $color.click();

	if(!$color.hasAttribute("onclick"))
	{
		window.location.reload();
		return false;
	}

	//选择内存
	var $ram = document.getElementById("skuGroupTag-" + $ramId); 
	if($ram) $ram.click();


	//立即申购
	if($color && $ram && document.getElementById("msg_wait").classList.contains("hide"))
	{

		if($color.hasAttribute("onclick") && $ram.hasAttribute("onclick"))
		{
			//function: ec.buy(this); //return false;
			document.getElementsByClassName("honor-btn-go")[0].click();
		}

	}

	//订单确认
	var $orderBtn = document.getElementById("submit_order_button"); 
	//ec.order.chooseComponent.gotoCheckOrder();
	if(document.getElementById("footerComponentCount") && $orderBtn) document.getElementById("submit_order_button").click();


	//设置地址
	var $addressList = document.getElementById("addressList");
	
	//设置发票信息并提交订单
	var $invoiceArea = document.getElementById("e_invoice_area");
	var $submitBtn = document.getElementById("submit_order_button");
	if($addressList && $invoiceArea && $submitBtn && document.getElementById("box-joining").classList.contains("hide"))
	{
		//functions
		//ec.order.checkOrder.selectAddress($addressId);
		//ec.order.checkOrder.selectInvoice($invoiceId);
		document.getElementById("addr_radio_" + $addressId).click();
		if($invoiceId == 1)
		{
			document.getElementById("e_invoice_check").click();
		}
		else if($invoiceId == 2)
		{
			document.getElementById("p_invoice_check").click();
		}
		if($invoiceText)
		{
			//电子发票抬头
			if($invoiceId == 1)
			{
				document.getElementById('e_group').click();
				//ec.order.checkOrder.setInvoice(50);
				document.getElementById("e_invoice_text").value = $invoiceText;
			}
			//纸质发票抬头
			else if($invoiceId == 2)
			{
				document.getElementById('p_group').click();
				//ec.order.checkOrder.setInvoice(2);
				document.getElementById("p_invoice_text").value = $invoiceText;
			}
		}
		//functions
		//ec.order.checkOrder.submitOrder();
		//ec.order.checkOrder.doSubmit();
		document.getElementById('submit_order_button').click();
		document.getElementById('pop-box-bottom').getElementsByClassName("honor3c-box-btn-go")[0].click();
		
	}
	
	//小伙伴们太热情了
	var $toomany = document.getElementById("box-too-many");
	if($toomany && !$toomany.classList.contains("hide")) ec.order.checkOrder.doSubmit(); 
},1000);  //这里配置抢购频率,1000 = 1秒,500 = 0.5秒 ...

Chrome 扩展配置文件manifest.json

{  
  "name": "华为抢购插件",  
  "manifest_version": 2,  
  "version": "1.0",  
  "description": "恶心的华为搞饥渴营销,所以产生了这么个玩意",  
  "browser_action": {  
    "default_icon": "icon.png"  
  },
  "permissions":[
    "tabs"
 ],
   "icons" : {
    "48" : "48.png",
    "128" : "128.png"
  }, 
  "content_scripts":[{
    "run_at": "document_end",
    "matches":["http://*.vmall.com/*"],
    "js":["main.js"]
  }]
}  

脚本安装方法

将上面的文件放置某目录下,然后打开Chrome并在地址栏输入:chrome://extensions/,然后勾上开发者模式,然后点击加载已解压的扩展程序...,找到文件所在目录即可。

使用方法

预先登录华为商城,然后打开至手机抢购页面,然后就干其他事情等着结果吧。

Read Comments

  • MATE9PRO7 years ago1

    加在扩展程序出错。
    无法加载扩展程序图标“48.png”。

    • MATE9PRO7 years ago1

      加载正常,等结果……

    • kingleoric7 years ago0

      图标缺失,找个图标,命名成48.png即可

  • ezail7 years ago0

    请问一下博主,怎么看到ec.selectGroupTagWithSku(1,8238),我只能
    检查找到这一步香槟金

    • ezail7 years ago0

      html显示不出来 li class="sku tac pointer attr1 attr13 current" data-attrname="颜色" data-attrid="1,13" title="香槟金" data-skuid="414604703,342552213" 香槟金

      • kingleoric7 years ago0

        现在的dom结构:
        class中有current为选中
        data-attrid和skuid这两个应该是对应的数值,取一个就可以了,具体我没做测试,然后可以通过js查找到并选中它

        不过已经没什么意义了,如果你只是买手机的话

    • kingleoric7 years ago0

      刚刚我去华为官方商城看了一下他们已经改版了,这个脚本是之前定时抢购页面用的。
      现在看上去已经不用抢购啦,包括之前最难买的黑色版本现在也能直接买了。

  • fengyuan6 years ago0

    博主,能给做一个现在的,抢购页面,发现改了以后不好用

    • leoric6 years ago0

      非常抱歉,未提供长期维护计划,官方会不断打击这类自动抢购脚本做修改的,放出脚本源码目的是供有兴趣学习js的朋友学习交流使用。

Post Comment