用uchome做的sns社區,用戶每天可以獲取一些積分,比如登錄、留言、評論等操作。如果沒有驗證碼,我們可以用程序來實現。火狐擴展可以對瀏覽器窗口進行操作、同時可以在網頁跳轉過程中保留狀態,這爲我們開發一個“模擬點擊”的程序提供了可能性!
下面是一些代碼片段,具體擴展,附在文章後面。
模擬留言
doComment: function() { var done = false; var commentMessage = this.getDoc().getElementById('comment_message'); var commentsubmitBtn = this.getDoc().getElementById('commentsubmit_btn'); if(commentMessage!=null && commentsubmitBtn!=null) { commentMessage.value = this.messageExample.randItem(); if(this.lastUrl != this.getDoc().location.href) { commentsubmitBtn.click();//註釋該行,可以屏蔽留言,便於調試 this.lastUrl = this.getDoc().location.href } done = true; } return done; },
獲取感興趣的鏈接
var allLinks = doc.getElementsByTagName("a"); for(var i=0,linkLen=allLinks.length; i<linkLen; i++) { var linkItem = allLinks[i].toString(); var tmpOffset = linkItem.indexOf('#'); if(tmpOffset != -1) { linkItem = linkItem.substr(0, tmpOffset); } var fullUrl; if(that.pageRegx.message.test(linkItem)) { fullUrl = Url.format(linkItem); if(!that.urlSpace.inArray(fullUrl)) { that.urlSpace.push(fullUrl); } } else if(that.pageRegx.blog.test(linkItem)) { fullUrl = Url.format(linkItem); if(!that.urlBlog.inArray(fullUrl)) { that.urlBlog.push(fullUrl); } } else if(that.pageRegx.album.test(linkItem)) { fullUrl = Url.format(linkItem); if(!that.urlAlbum.inArray(fullUrl)) { that.urlAlbum.push(fullUrl); } } else if(that.pageRegx.poll.test(linkItem)) { fullUrl = Url.format(linkItem); if(!that.urlPoll.inArray(fullUrl)) { that.urlPoll.push(fullUrl); } } }
自定義的數組方法
Array.prototype.randItem = function() { var item = 0; if(this.length > 0) { item = this[Math.floor(Math.random()*10000)%this.length]; } else { item = ''; } return item; }; Array.prototype.inArray = function(needle) { var hasExisted = false; for(var i=0,len=this.length; i<len; i++) { if(needle.toString() == this[i].toString()) { //一定要用toString(),this[i]是一個對象 hasExisted = true; break; } } return hasExisted; }; Tool = { notRepeatItem: function(arrStack, arrRepeat) { var result = ''; var goon = true; var hits = 100000; var tmpitem; do { tmpitem = arrStack.randItem(); if(!arrRepeat.inArray(tmpitem)) { result = tmpitem; goon = false; } hits--; } while (goon && hits); return result; } };
注:
把下載的xpi文件的後綴改爲zip,就可以看到源代碼了。
安裝成功之後,在火狐狀態欄右側會有“homezilla”的框,鼠標點擊開始執行,再次點擊停止運行。