经过几天的开发和测试,最终用JAVA实现了网站刷流量的程序,用到的技术SWT、JavaXPCOM。刷流量程序能利用多个代理IP,刷新指定的多个网页,并且一旦启动后能稳定运行。这里总结下用到的工具和技术。
本文为数飞OA工程师的技术探索和原创博文,首发于51CTO,转载请注明出处。
基础工具方面
首先是jre16和eclipse3.3.2。
采用的SWT,所以用到了org.eclipse.swt.win32.win32.x86_3.3.3.v3349.jar、org.eclipse.swt_3.3.2.v3349d.jar,这两个jar文件在eclipse的plugins能找到。
差不多有10年没搞过javaapp,为了能在eclipse中开发SWT,我安装了WindowBuilderPro,简单玩玩,做了个粗糙的界面。
要使用JavaXPCOM技术动态设置Mozilla的代理IP,就要用到xulrunner,测试采用xulrunner1.9.20的版本能稳定运行,再高的版本就不支持JavaXPCOM。在eclipse开发时,要导入:MozillaInterfaces.jar、javaxpcom.jar这两个jar包。其中javaxpcom.jar在xulruner包里找,MozillaInterfaces.jar包org.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增加browser的JAVA代码
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.jar,MANIFEST.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包放在同一目录。运行的机器也必须要有jre和xulrunner。
写个bat文件来执行:java-jarapp.jar
实现刷网站流量程序的个人感想
平时不怎么用到的技术,要马上用起来还真费劲。找齐这些工具,解决每个细小的问题,都要花时间和精力。真的要做好一个应用,还需要更专业的精神深入研究。
从技术角度来说,个人用户采用切换代理刷网站流量的方式是最可行的。按照这些步骤实现的刷网站流量程序,再优化一些细节,找到更多的代理、加入多线程、增加网站来路、增加随机访问等环节,可以模拟出很真实的访问数据。
不过这些仅限于技术研究,真的要让网站访问量提高,还是要扎实做好网站的内容和推广。