伊始

  兴致勃勃的写了几篇博客,访问量几个几个的慢慢增长,看着别人几十万的访问,心里难免有点失望毕竟现在是流量时代了,没有流量啥也不是,正所谓“酒香也怕巷子深”!于是乎想着先把访问量搞上去再说。

准备

  网上找了很多类似的案例,发现问题很多,经过学习与研究,完成了两种稳定的方法可以提高访问量,分别是基于Java和python的,在网络稳定的情况下,一天可以增加3万左右的访问。

实现

方法1(python):
需要使用浏览器的***,查看方法是直接在浏览器地址栏中输入

about:version

结果如下:

其中所需要的是用户***,复制备用。

import requests
import time

url = [#这里是你博客的地址,多个之间使用逗号隔开
       'https://blog.csdn.net/huanglei305/article/details/100891385',
       'https://blog.csdn.net/huanglei305/article/details/100883322']

#刚刚复制的那个用户***,替换掉就可以
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'}

count = 0
countUrl = len(url)

# 访问次数设置,超过之后程序停止
while count < 100000:
    try:  # 正常运行
        for i in range(countUrl):
            response = requests.get(url[i], headers=headers)
            if response.status_code == 200:
                count = count + 1
                print('成功访问 ' + str(count), '次')
        time.sleep(60)

    except Exception:  # 异常情况
        print('访问出现异常请稍等!')
        time.sleep(5)

跑了一晚上,结果就是这样的:

方法2(Java):
  这个方法需要使用IP***,缺点就是免费的IP不稳定,想要稳定就要购买,实测在芝麻HTTP每天可以免费领取20个稳定的IP,可以刷半小时,增加5k左右的访问,也是个不错的选择,感兴趣的可以试试。

代码如下:

package com.hbut.csdn;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashSet;
import java.util.Properties;
 
 
public class CSDN {
	private String zhuye;
	private String sousuo="/article/details/";
	
	public CSDN(){
	    //修改成你自己的博客主页
		zhuye="https://blog.csdn.net/huanglei305";
	}
	public CSDN(String url){
		zhuye=url;
	}
	
	
	public String getZhuye() {
		return zhuye;
	}
	public void setZhuye(String zhuye) {
		this.zhuye = zhuye;
	}
	public String getSousuo() {
		return sousuo;
	}
	public void setSousuo(String sousuo) {
		this.sousuo = sousuo;
	}
	public String open(String url){
		StringBuffer str=new StringBuffer();
		BufferedReader in=null;
		try {
			URL u=new URL(url);
			in=new BufferedReader(new InputStreamReader(u.openStream(), "UTF-8"));
			while(true){
				String s=in.readLine();
				if(s==null)break;
				else str.append(s);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			try {
				if(in!=null)in.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return str.toString();
	}
	
	public HashSet<String> sousuoHTML(String str){
		HashSet<String> set=new HashSet<String>();
		int st,end;
		while((st=str.indexOf(zhuye+sousuo))!=-1){
			if((end=str.indexOf("\"", st))!=-1){
				String s=str.substring(st, end);
				if(s.indexOf("#comments")!=-1){
					s=s.substring(0,s.indexOf("#comments"));
				}
				set.add(s);
				str=str.substring(end);
			}
		}
		return set;
	}
	
	public int getFangke() {
		String str=open(zhuye);
		int i;
		if((i=str.indexOf("访问:"))!=-1){
			str=str.substring(i);
			str=str.substring(str.indexOf("\"")+1);
			str=str.substring(0,str.indexOf("\""));
		}
		else if((i=str.indexOf("personal_list"))!=-1){
			str=str.substring(i);
			str.substring(str.indexOf("<em>")+4,str.indexOf("</em>"));
		}
		int ii=0;
		try {
			ii=Integer.parseInt(str);
		} catch (NumberFormatException e) {
			e.printStackTrace();
		}
		return ii;
	}
	public void daili(String ip,String dk) {
		Properties prop=System.getProperties();
		// 设置http访问要使用的***服务器的地址
        prop.setProperty("http.proxyHost", ip);
        // 设置http访问要使用的***服务器的端口
        prop.setProperty("http.proxyPort", dk);
        // 设置不需要通过***服务器访问的主机,可以使用*通配符,多个地址用|分隔
        prop.setProperty("http.nonProxyHosts", "localhost|192.168.168.*");
        // 设置安全访问使用的***服务器地址与端口
        // 它没有https.nonProxyHosts属性,它按照http.nonProxyHosts 中设置的规则访问
        prop.setProperty("https.proxyHost", ip);
        prop.setProperty("https.proxyPort", dk);
        // 使用ftp***服务器的主机、端口以及不需要使用ftp***服务器的主机
        prop.setProperty("ftp.proxyHost", ip);
        prop.setProperty("ftp.proxyPort", dk);
        prop.setProperty("ftp.nonProxyHosts", "localhost|192.168.168.*");
        // socks***服务器的地址与端口
        prop.setProperty("socksProxyHost", ip);
        prop.setProperty("socksProxyPort", dk);
        System.out.println("当前使用ip地址:"+ip+" :"+dk);
	}
	
	//获取的IP,多个之间使用逗号隔开。
	public static String[]dl= {"58.218.200.237:3418",
			"58.218.200.237:3645"};
	
	public static void main(String[] args) {
		int i=0;
		CSDN csdn=new CSDN();
		while(true) {
			long a=System.currentTimeMillis();
			for(i=0;i<dl.length;i++) {
				String[]dd=dl[i].split(":");
				csdn.daili(dd[0], dd[1]);
				HashSet<String> set=csdn.sousuoHTML(csdn.open(csdn.getZhuye()));
				for(String url:set){
					csdn.open(url);
					System.out.println("正在打开地址:"+url);
				}
				System.out.println("电脑已访问"+(++i));
				System.out.println("访问量:"+csdn.getFangke());
			}
			long b=System.currentTimeMillis();
			long c=b-a;
			if(3500-c>0) {
				try {
					Thread.sleep(3500-c);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
}