1. 程式人生 > >JAVA刷網站流量的技術研究總結

JAVA刷網站流量的技術研究總結

經過幾天的開發和測試,最終用JAVA實現了網站刷流量的程式,用到的技術SWTJavaXPCOM。刷流量程式能利用多個代理IP,重新整理指定的多個網頁,並且一旦啟動後能穩定執行。這裡總結下用到的工具和技術。

本文為數飛OA工程師的技術探索和原創博文,首發於51CTO,轉載請註明出處。

基礎工具方面

首先是jre16eclipse3.3.2

採用的SWT,所以用到了org.eclipse.swt.win32.win32.x86_3.3.3.v3349.jarorg.eclipse.swt_3.3.2.v3349d.jar,這兩個jar檔案在eclipseplugins能找到。

差不多有10年沒搞過javaapp,為了能在eclipse中開發SWT,我安裝了WindowBuilderPro,簡單玩玩,做了個粗糙的介面。

要使用JavaXPCOM技術動態設定Mozilla的代理IP,就要用到xulrunner,測試採用xulrunner1.9.20的版本能穩定執行,再高的版本就不支援JavaXPCOM。在eclipse開發時,要匯入:MozillaInterfaces.jarjavaxpcom.jar這兩個jar包。其中javaxpcom.jarxulruner包裡找,MozillaInterfaces.jarorg.mozilla.xpcom的包裡。

Xulruner下載:

http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/

org.mozilla.xpcom下載:http://ftp.mozilla.org/pub/mozilla.org/xulrunner/eclipse/

有了這些工具就可以開發起來。

JAVA程式碼動態設定瀏覽器的網路代理

Mozillamozilla=Mozilla.getInstance();

nsIServiceManagerserviceManager=mozilla.getServiceManager();

StringcontractID="@mozilla.org/preferences-service;1"

;

nsIPrefServiceprefService=(nsIPrefService)serviceManager.getServiceByContractID(contractID,nsIPrefService.NS_IPREFSERVICE_IID);

nsIPrefBranchbranch=prefService.getBranch("");

//這裡network.proxy.type設定為1是關鍵

branch.setIntPref("network.proxy.type",1);

branch.setCharPref("network.proxy.http",sProxyIp);

branch.setIntPref("network.proxy.http_port",iProxyPort);

SWT增加browserJAVA程式碼

finalDisplaydisplay=Display.getDefault();

finalShellshell=newShell(SWT.MIN|SWT.APPLICATION_MODAL|SWT.TITLE|SWT.BORDER|SWT.CLOSE);

//這裡引數是SWT.MOZILLA

finalBrowserbrowser=newBrowser(shell,SWT.MOZILLA);

browser.setUrl("www.soarwell.com");

shell.layout();

while(!shell.isDisposed()){

if(!display.readAndDispatch())

display.sleep();

}

shell.pack();

啟動執行緒動態切換網路代理和網站地址的JAVA程式碼

newThread(newRunnable(){

publicvoidrun(){

try{

while(true){

//迴圈取代理IP

for(i=0;i<str_ProxyKey.length;i++){

//迴圈取要訪問的網站

for(j=0;j<str_WebKey.length;j++){

//檢測代理和網站是否可用

//代理和網站都可以使用

display.syncExec(newRunnable(){

publicvoidrun(){//設定代理

proxy.modifyProxy(str_Proxy[0],str_Proxy[1]);

//訪問網站browser.setUrl(strWebUrl);

}//run

});//display.}//forj

}//fori

}//while(true){

}catch(Exceptione){

e.printStackTrace();

}

}//run

}).start();//newThread(newRunnable()

//啟動執行緒結束

修改xulrunner遮蔽mozilla彈出視窗的提示

找到xulrunner/greprefs/all.js,加入:

pref("browser.xul.error_pages.enabled",true);

打包成application執行

打包成app.jarMANIFEST.MF檔案必須要明確用到的jar檔案路徑:

Class-Path:javaxpcom.jarMozillaInterfaces.jarorg.eclipse.swt.win32.win32.x86_3.3.3.v3349.jarorg.eclipse.swt_3.3.2.v3349d.jar

把這四個jar包跟生成應用程式app.jar包放在同一目錄。執行的機器也必須要有jrexulrunner

寫個bat檔案來執行:java-jarapp.jar

實現刷網站流量程式的個人感想

平時不怎麼用到的技術,要馬上用起來還真費勁。找齊這些工具,解決每個細小的問題,都要花時間和精力。真的要做好一個應用,還需要更專業的精神深入研究。

從技術角度來說,個人使用者採用切換代理刷網站流量的方式是最可行的。按照這些步驟實現的刷網站流量程式,再優化一些細節,找到更多的代理、加入多執行緒、增加網站來路、增加隨機訪問等環節,可以模擬出很真實的訪問資料。

不過這些僅限於技術研究,真的要讓網站訪問量提高,還是要紮實做好網站的內容和推廣。