通過Java刷校內的心得

2021-08-29 19:24:39 字數 1628 閱讀 5443

這個程式我總共寫了四個版本,第乙個版本和後面三個版本差別較大,在我認為,刷校內有兩種方式:一種是被動刷,網上能找到的刷子程式幾乎都是這種型別。被動式刷法通過訪問別人的校內來提高自己的人氣。這種方式的缺點在於由於別人回訪的概率不定,因此效率很低。我的第一版刷子採用的就是這個方式。需要說明的是,第乙個版本實際上沒有完成,但基本的功能框架已經實現。另一種方式是主動刷,這種刷法是通過模擬別人訪問自己的方法提高人氣,這種方法的特點在於效率奇高,網上有賣人氣的似乎一眨眼間便能刷出上千人氣。我寫的沒有這麼離譜~

主動刷通過模擬別人訪問自己的校內,那又如何模擬呢?那種一眨眼刷出上千人氣的,我不清楚它是如何實現的。我採用的方式是通過一批機械人帳號來訪問自己的校內而達到模擬訪問的效果。機械人帳號的獲得可以通過自動序號產生器實現,也可以通過手工註冊實現。自動序號產生器需要自己編寫,主要完成三個功能:註冊郵箱、註冊校內、啟用帳號。這裡有幾個難點:1.驗證碼自動識別;2郵箱的登入問題,郵箱的安全級別較高,其訪問通過https完成。我感覺實現起來很麻煩,需要花很多時間。因此我採用的是手工註冊的方法,總共建立了50個機械人帳號,通過這些帳號實現了刷人氣。

下面是一些具體的技術細節了。

dom4j是很流行的xml解析操作方案。我通過dom4j解析配置檔案,配置檔案的功能是配置被刷的帳號以及機械人帳戶。dom4j需要jaxen包。

inputstream is=get.getresponsebodyasstream();

bytearrayoutputstream baos = new bytearrayoutputstream();

int b=0;

while( (b = is.read())!=-1) baos.write(b);

modalimage mi=modalimage.getinstance();

mi.show(new imageicon(baos.tobytearray()));

modalimage是模式對話方塊,用於顯示並提供使用者輸入驗證碼。之所以要求使用者手工輸入驗證冊,是因此我還無法完成全部的驗證碼識別功能。現在校內的驗證碼分兩種,一種是規則的,這種容易識別;另一種是無規則的,不懂怎麼識別啊,晚上獲得乙個資訊:依據人工神經學的某個理論可以實現一定機率的識別,but我連人工神經學的書都沒摸過~

模擬訪問,所謂模擬訪問即是把自己偽裝成某種瀏覽器,或者說偽裝成某種客戶端。在firefox裡有種extension,通過它可以偽裝成通過手機瀏覽。這裡我們自然不需要模擬成手機訪問,我模擬的是firefox。在瀏覽器向伺服器提交的請求頭里,有個字段是user-agent,通過它我們可以判斷客戶來自何種瀏覽器。因此我們將此字段以及其值加入到請求體中:

namevaluepair nvp=;

postmethod.setrequestbody(nvp);//加入到請求體中

在登入中,則需要將使用者帳號和密碼放在nvp中,然後加入請求體。如何判斷登入成功與否?我們不需要解析返回的內容,只需檢測是否有重定向即可。如果伺服器返回狀態碼302,恭喜你,登入成功了。

登入:

訪問:使用者id

獲取驗證碼;獲取可得

快速刷,我個人覺和是不是很有必要。畢竟不是商業行為,我希望刷的安全、刷得穩。速度不要求非常高。如果要實現快速刷,我個人認識,通過執行足夠多的執行緒是可以實現的,這有個上限。當然應該有其他的訣竅,以後再研究下~

[/size]

java基礎反射的心得

class類 描述類的位元組馬檔案物件的類 獲得class檔案字解碼物件的三種方式 1 物件.getcalss 2 物件.class屬性 3 class類的靜態方法forname 類的全路徑名 最實用 class類中的獲取方法 getconstructors 獲取所有的構造方法 getconstru...

刷題心得 揹包問題的列舉方式

以0 1揹包為例,到底正序列舉還是倒序列舉?正序列舉還是倒敘列舉的原則取決於0 1揹包的性質,即乙個階段的狀態 1個物品 不能被放進揹包兩次。如果正序列舉的話,當前階段被上乙個階段更新,而下乙個階段仍然可能被上乙個階段更新。多以就相當於乙個物品被放進了揹包兩次。違背0 1揹包的規則。而完全揹包就不需...

SQL練習63 刷題通過的題目排名

題目描述 在牛客刷題有乙個通過題目個數的 passing number 表,id是主鍵,簡化如下 第1行表示id為1的使用者通過了4個題目 第6行表示id為6的使用者通過了4個題目 請你根據上表,輸出通過的題目的排名,通過題目個數相同的,排名相同,此時按照id公升序排列,資料如下 id為5的使用者通...