一、背景說明
在雜記(2)中,我們寫了JS腳本在chrome瀏覽器的開發(fā)者模式console頁面執(zhí)行,用于搶bus票,但這個(gè)腳本有個(gè)弊端是當(dāng)頁面刷新后,腳本會(huì)自動(dòng)清除,無法再執(zhí)行,如何解決呢?我們可以開發(fā)一個(gè)chrome插件,啟動(dòng)這個(gè)插件,當(dāng)chrome瀏覽器一打開目標(biāo)頁面就去執(zhí)行腳本。
二、插件開發(fā)
1、json文件
然后創(chuàng)建一個(gè)文本文件,作為這個(gè)擴(kuò)展程序的配置文件,所以文件名是manifest.json,注意擴(kuò)展名是json,然后輸入如下內(nèi)容。1.png的話,隨便拖一張圖片進(jìn)來就OK啦。另外需要注意的是,該文本文件需要用UTF-8字符集保存。
{ "name": "2.5busTicket", "manifest_version": 2, "version": "1.0", "description": "2.5產(chǎn)業(yè)園巴士搶票插件", "browser_action": { "default_icon": "1.png" }, "content_scripts": [ { "matches": ["http://free_bus_ticket.fyxmt.com/front-end/jianwuqiangpiao/*"], "js": ["myscript.js"] } ]}
2、Js腳本
擴(kuò)展程序中需要執(zhí)行的JS腳本:
- var myDate = new Date();
- var mytime=myDate.toLocaleTimeString();
- console.log("當(dāng)前時(shí)間:"+mytime);
- var h = myDate.getHours();
- console.log("小時(shí):"+h);
- var m = myDate.getMinutes();
- console.log("分鐘:"+m);
- var s = myDate.getSeconds();
- console.log("秒:"+s);
- setInterval(function() {
- console.log("進(jìn)入方法");
- var myDate = new Date();
- var h = myDate.getHours();
- console.log("小時(shí):"+h);
- var buttons = document.getElementsByTagName("button");
- if(buttons.length == 10){
- console.log("拿到10個(gè)按鈕");
- if(h == 12){
- console.log("搶下班的票!");
- var button = buttons[4];
- button.click();
- console.log("點(diǎn)擊完成");
- }else if(h == 19){
- console.log("搶上班的票!");
- var button = buttons[2];
- button.click();
- console.log("點(diǎn)擊完成");
- }
- }
- },1000);
3、安裝插件
打開chrome擴(kuò)展程序管理
開啟開發(fā)者模式,點(diǎn)擊加載已解壓的擴(kuò)展程序,選擇我們的插件主目錄
如下圖所示,表示已經(jīng)安裝成功,右上角插件的圖標(biāo)也已經(jīng)顯示出來了
4、驗(yàn)證
打開chrome瀏覽器,進(jìn)入目標(biāo)地址,腳本將自動(dòng)執(zhí)行,從后臺(tái)日志可以看到
三、windows計(jì)劃任務(wù)讓腳本定時(shí)自動(dòng)執(zhí)行
1、bat腳本
新建一個(gè)busOrder.bat的文件,內(nèi)容如下:
cd C:\Program Files (x86)\Google\Chrome\Applicationstart chrome.exe "http://free_bus_ticket.fyxmt.com/front-end/jianwuqiangpiao/buy-tickets.html?wechatNo=ofqo-uN-L1bU9xSwwdVbggAEmKwk"
2、添加windows計(jì)劃任務(wù)
win+R—》輸入taskschd.msc打開計(jì)劃任務(wù)窗口
添加腳本至執(zhí)行任務(wù),設(shè)置觸發(fā)器(可以設(shè)置多個(gè)),以下內(nèi)容省略
聯(lián)系客服