经过几天的开发和测试,最终用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

实现刷网站流量程序的个人感想

平时不怎么用到的技术,要马上用起来还真费劲。找齐这些工具,解决每个细小的问题,都要花时间和精力。真的要做好一个应用,还需要更专业的精神深入研究。

从技术角度来说,个人用户采用切换代理刷网站流量的方式是最可行的。按照这些步骤实现的刷网站流量程序,再优化一些细节,找到更多的代理、加入多线程、增加网站来路、增加随机访问等环节,可以模拟出很真实的访问数据。

不过这些仅限于技术研究,真的要让网站访问量提高,还是要扎实做好网站的内容和推广。