上周利用Chrome插件做了一个简单的抢购程序,在既定页面可自动点击按钮。然而,在实际应用中哪有这么简单,不但要填写数据,还只能在指定的时间来抢。据此,对抢购脚本进行了改进。
1.抢购页面模型设计
在原有抢购页面上增加“姓名”和“手机号”的输入,在抢购前必须先输入有效的数据。代码实现如下:
大抢购
页面初始加载时“抢购”按钮不可用,三秒钟后转变为可用状态。
2.自动检测提交时机
改写Chrome插件中的js文件,以1秒钟为周期监视“抢购”按钮的可用状态,代码如下:
setInterval("insertTextAndSubmit()",1000);
3.填写数据并提交
在监视到“抢购”按钮可用时,在网页的文本框中输入预先指定的数据内容,这里是我自己的姓名和手机号码,然后触发网页的“抢购”按钮,实现数据提交。代码如下:
function insertTextAndSubmit()
{
if (document.forms["frm1"]["subm"].disabled == false)
{
document.forms["frm1"]["name"].value = "张永胜";
document.forms["frm1"]["phone"].value = "18637921232";
document.forms["frm1"].submit();
}
}
载入网页运行,效果如下图所示:
此次的改进涉及的知识点主要是HTML DOM模型。在https://www.w3cschool.cn/jsref/有详细的参考手册。
HTML DOM 是专门适用于HTML/XHTML的文档对象模型,是HTML Document Object Model(文档对象模型)的缩写。HTML DOM可以理解为网页的API。在HTML DOM中,网页中的各个元素都被看作一个个对象,从而使网页中的元素也可以被计算机语言获取或者编辑。例如Javascript就可以利用HTML DOM动态地修改网页。DOM其实就是 W3C(万维网联盟)的标准,DOM 定义了访问 HTML 和 XML 文档的标准。
利用脚本操作网页,就是与DOM打交道。
想要将此脚本应用于实战,还面临一些问题,其中验证码复杂多变最难解决。不过,也并非一定要实现全自动操作,如果能够辅助快速填表,抢购的胜算也会增大几成。