最近开了个小店,木流量更木信誉,虽然东西已经便宜到要低于进价了。 在不断向广大亲朋好友推荐的同时,想身为程序猿的我应该要做些什么,于是想到能否编程刷流量,网上一大堆刷流量的软件不敢用,搞不好店就得关门,还是自己解决吧。刷流量需要解决两个题,一是怎样访问算流量;二是怎样获取多个IP来访问,因为大家知道像淘宝这样的大型商城肯定是有各种防刷机制,一个IP肯定刷不了多少,搞不好就被封了,况且一个IP刷只能增加浏览量而不能增加访客数,作用还是不大。
于是我想到了两个方法:一是用httpclient后台执行get方法打开网页获取数据,代码如下:
package com.alexia;
import java.io.IOException;
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
public class AutoVisitSite {
public static void main(String[] args) {
// 访问10次
for(int count = 1; count < 11; count++) {
AutoVisit(count);
}
}
public static void AutoVisit(int count) {
HttpClient httpclient = new HttpClient();
// 设置HTTP代理IP和端口
// httpclient.getHostConfiguration().setProxy("58.252.56.149", 8080);
// 代理认证(登录名+密码)
// UsernamePasswordCredentials creds = new UsernamePasswordCredentials("root", "123456");
// httpclient.getState().setProxyCredentials(AuthScope.ANY, creds);
// Get调用
GetMethod method = new GetMethod("http://alexia.taobao.com/");
method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler(3, false));
try {
int statusCode = httpclient.executeMethod(method);
if (statusCode != HttpStatus.SC_OK) {
System.out.println(statusCode + ": " + method.getStatusLine());
} else {
// System.out.println(new String(method.getResponseBody(),
// "GBK"));
System.out.println("访问" + count + "次!");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
// 停留3s后再关闭连接
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
method.releaseConnection();
}
}
}
结果当然是不行,要是这么简单,淘宝也可以关门了。通过淘宝的实时客户访问可知,淘宝是记录每一位访客来源的,是直接访问的还是站外访问的(也就是你推广的链接处访问进来),点击站外其他可以看到具体从哪个页面链接访问进来的,如下图所示:
所以此法不通(其实早知道了,只是还是想亲身尝试下以彻底死心)。于是想到了第二种方法:通过自动打开浏览器窗口访问网站,这种方法应该是可行的,就跟你自己手动打开浏览器访问网站效果一样,而打开浏览器针对不同版本的JDK也有不同的方法,如下:
// 在新的浏览器窗口或在已有的浏览器窗口打开指定的URL(JDK 1.6以下)
public static void openURL1(String url){
try {
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler "+ url);
}catch(Exception e){
e.printStackTrace();
}
}
// 在新的浏览器窗口或在已有的浏览器窗口打开指定的URL(JDK 1.6以上)
public static void openURL2(String url){
Desktop desktop = Desktop.getDesktop();
if (Desktop.isDesktopSupported() && desktop.isSupported(Desktop.Action.BROWSE)) {
URI uri = URI.create("http://lanxuezaipiao.blog.163.com/");
try {
desktop.browse(uri);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
但为了打开浏览器后能及时关闭浏览器以避免产生多个窗口,我选择了利用Java执行DOS批处理的方式,即第一种方式,但上述第一种方式是用默认浏览器打开,而我系统的默认浏览器是Firefox,为了能在刷流量的同时还能继续上网,我决定用IE来执行刷流量的任务,批处理文件(autoVisit.bat)如下:
cd \
C:
cd Program Files\Internet Explorer
iexplore "http://item.taobao.com/item.htm?spm=a1z10.1.w4004-1854795698.36.SVY3Wd&id=18480249494"
然后Java调用这个批处理,代码如下:
package com.alexia;
import java.io.IOException;
/**
* 自动刷流量
*
* @author Alexia
*
*/
public class AutoFlux {
/**
*
* @param count
* 访问次数
* @param seconds
* 每次访问时间
* @throws InterruptedException
*/
public static void flux(int count, int seconds) {
Process p1 = null, p2 = null;
while (count-- > 0) {
try {
// 执行批处理开始打开IE浏览器访问
p1 = Runtime.getRuntime().exec("cmd /c autoVisit.bat");
// 访问延时(打开浏览器窗口要时间的)
try {
Thread.sleep(1000 * seconds);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 关闭IE浏览器
p2 = Runtime.getRuntime().exec("taskkill /F /IM iexplore.exe");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
p1.destroy();
p2.destroy();
}
}
/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// 访问10次,每次延时5s
flux(2, 5);
}
}
你可能会想,没必要这么麻烦把,既然是执行批处理,何必需要Java来调用执行,执行运行.bat文件不就行了嘛,的确如此,因为开始不知道批处理的延时方法,现在知道了,改用批处理方式最简洁:
@echo off
rem 首先找到IE浏览器的执行路径
cd \
C:
cd Program Files\Internet Explorer
rem 循环10次
for /l %%i in (1,1,10) do (
rem 打开网页并最小化窗口(不影响你当前工作)
start /min iexplore "http://item.taobao.com/item.htm?spm=a1z10.1.w4004-
1854795698.36.SVY3Wd&id=18480249494"
rem 延时5s
choice /t 5 /d y /n >nul
rem 关闭网页
taskkill /F /IM iexplore.exe
)
上面的批处理在执行时还是会出现DOS窗口的,还是有点影响不好,所以为了不显示DOS窗口,又写了个VB脚本:
DIM objShell
set objShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("cmd.exe /C autoVisit.bat", 0, TRUE)
这样就好了,完全不影响当前工作,真正实现了刷流量的功能。
但还是有问题没有解决:
1.打开IE时任务栏有显示图标,你会看到图标一下有一下没,希望能够隐藏任务栏上的IE图标(也就是后台运行吧),经过搜索只能隐藏通知区域的图标而无法隐藏任务栏的某个程序图标;
2.最关键的问题是如何多IP访问(增加访客量),这个问题我想到用代理服务器,IE可以设置代理服务器,关键是找不到可用的免费代理服务器,下载了个代理猎手ProxyHunter,在里面搜索了很久都搜不到一个免费的不要密码的,全是下面这些结果:
自己在网上也找了很多代理IP,放到猎手里一验证还是上面那些东西,没一个可用的,所以目前还为实现多IP访问网站的功能。
PS:如果谁有办法解决上面的两个问题,一定要告诉我,感激不尽!!!联系我
分享到:
相关推荐
sql2000+java 批处理只要改一下要处理的服务器地址就可以运行,非常简单,这是我花费了一周时间写的
这是一个用Java实现解决批处理作业调度问题的算法
Star CCM+使用Java宏实现批处理
图书管理系统主要包括了图书管理员和读者两种用户。图书管理员模块包括了书架管理、图书管理、图书借还管理、读者信息管理、读者管理、数据统计。读者主要包括了图书查询、图书借阅管理、图书借阅查询、个人信息管理...
java+jsp+ajax+mysql实现在线聊天,简单易懂,可自行添加复杂功能, 怕太过于复杂大家不容易看懂,就写的比较简单,可以根据需求添加复杂的功能,附带有数据库的执行代码,部署,修改一下文件中的数据库登陆密码就...
采用Java编写的文件的dos批处理文件,可以实现系统的临时文件,及其一些特别的temp文件等等的清除
自己用java+access开发实现的的一个小型超市信息管理系统 对于刚刚接触jdbc编程是很有帮助的 并且已经打包好 双击exe文件即可运行系统
Client.bat文件写的一个java工程自动编译脚本,可供参考写其它Java工程批处理文件。
因为初学java,所以只做了简单的能执行 javac 文件名.java java 文件名 这两个命令的批处理。 直接打开文件点确定即可执行java小程序,方便一点点。
Java+mySQL实现的购物商城项目
需配置好OpenCV和OCR环境
复制文件方法 文件分割与合并方法 实现文件分类管理 实现文件的解压缩
Java 自动编译运行 批处理程序 以下是自制的Java自动编译+运行批处理程序,请将它加入到Path中 它可以执行的指令有: t Java文件名 [/?][e][r]或[c] [a] 注意:请不要输入文件的扩展名 [/?] 读取本帮助信息 [/...
对Echarts3.0的基本图表实现,即饼图,折线图,柱状图。 从数据库读取数据显示在前台,图表可根据数据库数据实时更新。
Java+SQLServer实现的图书管理系统项目,
本例是java实现的批处理作业调度程序,采用的是回溯法,排列集合的方式,参考书籍为:算法设计与分析
一键轻松搞定java环境变量设置 v1.0 使用时先编辑javaenvsetv0.1.bat,在第一行set JAVA_HOME=D:\program files\Java\jdk1.5.0_06处设置自己的jdk路径,然后保存运行bat即可。
java+jsp代码实现从FTP服务器上传下载文件。 里面给了java方法和jsp页面的代码。主要是实现从FTP服务器上面下载文件到自己本地文件夹下面。另外还给了几个网站供大家参考。
NULL 博文链接:https://wang-z-p2007.iteye.com/blog/908042
这是基于java和mysql编写的人事管理项目,没有用到swing,但是能够练习java的基础知识,对于初学者还是不错的