博客访问量自刷DEMO

长期关注自己的CSDN博客,访问量少的可怜。闲来无趣尝试通过什么“巧方法”可以自刷访问量,总结一下自己的思路和实现方法,分享如下几个DEMO,仅供参考。如有更好的方法欢迎评论分享,谢谢!

DEMO ONE:基于cmd命令&bat脚本处理,如下为.bat文件

//打开浏览器
cmd /c start iexplore https://blog.csdn.net/qq_32730819/column/info/35193
//暂停
pause
//关闭浏览器
taskkill /f /im iexplore.exe >> run.log
//退出
exit

备注:在浏览器中打开博客链接相应的访问量就会增加,Windows操作系统可运行dos命令在指定浏览器中打开对应的链接,对bat脚本熟悉程度不足,脚本优化有限,该方法人工干预较多,刷的效率太慢。

DEMO TWO:Java循环打开关闭浏览器,如下代码

package brushAccess;

import java.awt.*;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.concurrent.TimeUnit;

/**
 * @author XUQIANG_DUAN
 * @date 2019/3/4
 * @time 19:51
 */
public class DemoTwo {

    public static void main(String[] args){
        /**
         * 使用默认浏览器打开指定链接刷新
         * 备注:由于CSDN限制,该方法的时间间隔必须大于1分钟,访问才有效
         * IE浏览器 iexplore.exe
         * Chrome浏览器 chrome.exe
         * 火狐浏览器 firefox.exe
         */
        try {
            Desktop desktop = Desktop.getDesktop();
            for(int i=0 ; i<600 ; ++i){
                //创建URI统一资源标识符
                URI uri = new URI("https://blog.csdn.net/qq_32730819/article/details/89314725");
                //使用默认浏览器打开指定链接
                //desktop.browse(uri);
                //Runtime类在浏览器中打开指定链接
                Runtime.getRuntime().exec("cmd /c start firefox "+uri);
                System.err.println(i + "次运行时间为:" + System.currentTimeMillis());
                //等待30秒
                TimeUnit.MILLISECONDS.sleep(30000);
                //关闭浏览器
                Runtime.getRuntime().exec("taskkill /F /IM firefox.exe");
                //等待30秒
                TimeUnit.MILLISECONDS.sleep(30000);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }  
}

备注:使用Java中Desktop类打开指定URL,Runtime类运行dos命令关闭浏览器

DEMO THREE:方法二继续优化,引入多个博客链接(N个),等待时间变为原来的60/N秒(即每分钟内可以依次打开这个N个链接)

package brushAccess;

import java.awt.*;
import java.net.URI;
import java.util.concurrent.TimeUnit;

/**
 * @author XUQIANG_DUAN
 * @date 2019/4/16
 * @time 11:00
 */
public class DemoThree {
    //博客链接集
    private static String[] urls = {
            //专栏链接
            "https://blog.csdn.net/qq_32730819/column/info/35193",
            //CDA数据分析师 - 备考指南
            "https://blog.csdn.net/qq_32730819/article/details/87855572",
            //CDA数据分析师 - 《从零进阶!数据分析的统计基础》思维结构简图
            "https://blog.csdn.net/qq_32730819/article/details/88427788",
            //CDA数据分析师 - 数据分析概述
            "https://blog.csdn.net/qq_32730819/article/details/88203282",
            //CDA数据分析师 - SQL数据库基础 查询&连接
            "https://blog.csdn.net/qq_32730819/article/details/88059747",
            //CDA数据分析师 - SQL数据库基础 数据类型&表操作语句
            "https://blog.csdn.net/qq_32730819/article/details/87949029",
            //IBM SPSS Statistics从零进阶 操作&运用
            "https://blog.csdn.net/qq_32730819/article/details/88365358",
            //SPSS学习入门 简介&安装
            "https://blog.csdn.net/qq_32730819/article/details/88354877",
            //SPSS中常用的几种t检验实例操作
            "https://blog.csdn.net/qq_32730819/article/details/88648814",
            //MySQL数据库安装操作指南(包括Windows&Linux系统安装详细步骤)
            "https://blog.csdn.net/qq_32730819/article/details/89279714",
            //MySQL导入CSV/TXT等数据源中数据操作流程及注意事项
            "https://blog.csdn.net/qq_32730819/article/details/88073041",
            //Redis
            "https://blog.csdn.net/qq_32730819/article/details/87924466",
            //Linux常用快捷键、技巧&通配符
            "https://blog.csdn.net/qq_32730819/article/details/89161867",
            //Linux VI VIM 文书编辑器
            "https://blog.csdn.net/qq_32730819/article/details/89105361",
            //Linux 版本介绍及安装
            "https://blog.csdn.net/qq_32730819/article/details/89004753",
            //Java虚拟机知识框架图
            "https://blog.csdn.net/qq_32730819/article/details/88725604",
            //log4j.properties 配置文件
            "https://blog.csdn.net/qq_32730819/article/details/88133806",
            //IDEA常用插件
            "https://blog.csdn.net/qq_32730819/article/details/87885061",
            //博客访问量自刷DEMO
            "https://blog.csdn.net/qq_32730819/article/details/89314725",
            //Java操作Excel表格
            "https://blog.csdn.net/qq_32730819/article/details/87365101",
            //Java基础——System.out.print与System.err.print区别
            "https://blog.csdn.net/qq_32730819/article/details/87075464",
            //技术概念:敏捷开发、持续集成、持续交付和DevOps的定义及关系梳理
            "https://blog.csdn.net/qq_32730819/article/details/87716858",
            //技术概念:算法帝国
            "https://blog.csdn.net/qq_32730819/article/details/87795453",
            //强强乐谈:为您推荐几部优秀的影视作品
            "https://blog.csdn.net/qq_32730819/article/details/87885283",
            //Python基础
            "https://blog.csdn.net/qq_32730819/article/details/80683882"
    };
    //浏览器集
    private static String[] browsers = {
            "iexplore.exe ",
            "chrome.exe "
            /**
             * TODO: 问题未解决
             * 1. QQBrowser & SogouExplorer.exe 运行显示如下
             * start QQBrowser.exe https://www.baidu.com
             * 系统找不到文件 QQBrowser.exe。
             * start SogouExplorer.exe https://www.baidu.com
             * 系统找不到文件 SogouExplorer.exe。
             * 2.microsoftedge.exe 无法跳转到指定链接
             * 3.firefox.exe 不稳定,多次打开并关闭显示Firefox启动时意外关闭
            */
    };

    public static void main(String[] args){
        try {
            Desktop desktop = Desktop.getDesktop();
            for(int i=0 ; i<60000 ; ++i){
                //随机选择博客 [0,24] & 浏览器打开[0,1]
                int url = i%25;
                int browser = i%2;
                //选定博客uri
                URI uri = new URI(urls[url]);
                //选定浏览器
                String bro = browsers[browser];
                System.err.println(i + "次运行 | 浏览器:"+bro+" | 博客链接:"+url+" | 时间:" + System.currentTimeMillis());
                //Runtime类在浏览器中打开指定链接
                Runtime.getRuntime().exec("cmd /c start "+bro+uri);
                //等待5秒
                TimeUnit.MILLISECONDS.sleep(3000);
                //关闭浏览器
                Runtime.getRuntime().exec("taskkill /F /IM "+bro);
                //等待1秒
                TimeUnit.MILLISECONDS.sleep(10);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

备注:由于使用浏览器打开指定链接需要等待约3秒左右,该方法的效率并不会随着博客链接的数量增加而提高,反而随着博客链接数量的增加而到达一定瓶颈,该方法需要继续优化,首先想到的方法是引入多个线程依次打开并关闭博客链接,从而提高效率。

DEMO FOUR:运用多线程指定浏览器依次运行确定博客链接

package brushAccess;
import java.net.URI;
import java.util.concurrent.TimeUnit;

/**
 * 线程A使用chrome浏览器依次打开指定链接
 * @author XUQIANG_DUAN
 * @date 2019/4/17
 * @time 11:00
 */
public class DemoFour extends Thread{

    //博客链接集
    private static String[] urls = {
            //专栏链接
            "https://blog.csdn.net/qq_32730819/column/info/35193",
            //CDA数据分析师 - 备考指南
            "https://blog.csdn.net/qq_32730819/article/details/87855572",
            //CDA数据分析师 - 《从零进阶!数据分析的统计基础》思维结构简图
            "https://blog.csdn.net/qq_32730819/article/details/88427788",
            //CDA数据分析师 - 数据分析概述
            "https://blog.csdn.net/qq_32730819/article/details/88203282",
            //CDA数据分析师 - SQL数据库基础 查询&连接
            "https://blog.csdn.net/qq_32730819/article/details/88059747",
            //CDA数据分析师 - SQL数据库基础 数据类型&表操作语句
            "https://blog.csdn.net/qq_32730819/article/details/87949029",
            //IBM SPSS Statistics从零进阶 操作&运用
            "https://blog.csdn.net/qq_32730819/article/details/88365358",
            //SPSS学习入门 简介&安装
            "https://blog.csdn.net/qq_32730819/article/details/88354877",
            //SPSS中常用的几种t检验实例操作
            "https://blog.csdn.net/qq_32730819/article/details/88648814",
            //MySQL数据库安装操作指南(包括Windows&Linux系统安装详细步骤)
            "https://blog.csdn.net/qq_32730819/article/details/89279714",
            //MySQL导入CSV/TXT等数据源中数据操作流程及注意事项
            "https://blog.csdn.net/qq_32730819/article/details/88073041",
            //Redis
            "https://blog.csdn.net/qq_32730819/article/details/87924466"
    };

    @Override
    public void run(){
        try {
            for(int i=0 ; i<60000 ; ++i){
                //随机选择博客 [0,11]
                int url = i%12;
                //选定博客uri
                URI uri = new URI(urls[url]);
                System.err.println(i + "次运行 | 浏览器:chrome.exe | 博客链接:"+url+" | 时间:" + System.currentTimeMillis());
                //Runtime类在浏览器中打开指定链接
                Runtime.getRuntime().exec("cmd /c start chrome.exe "+uri);
                //等待5秒
                TimeUnit.MILLISECONDS.sleep(4900);
                //关闭浏览器
                Runtime.getRuntime().exec("taskkill /F /IM chrome.exe");
                //等待1秒
                TimeUnit.MILLISECONDS.sleep(200);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 创建线程,开始执行
     * @param args
     */
    public static void main(String[] args){
        new DemoFour().start();
        new DemoFourBak().start();
    }

}

备注:使用该方法刷新的效率有所提高,因本人博客量较少,效果不是很明显

你可能感兴趣的:(Java)