如何增加访问量,阅读量(转)

用的是Eclipse,笔记本没装IDEA

第一步:根据上面要求创建相应的包和类;

第二步:复制以下类的代码:

package Test3;
 
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
 
 
 
public class Url {
	
 public void openUrl(String str)
 {
	 try {
		URL myUrl = new URL(str);//打开指定网址
		
		InputStreamReader is =new InputStreamReader( myUrl.openStream(),"utf-8");
		//myUrl.openStream()是打开与此URL的连接,并返回一个InputStream以从该连接读取
		// API文档说明:InputStreamReader类是从字节流到字符流的桥接器:它使用指定的字符集读取字节并将它们解码为字符。
		BufferedReader br = new BufferedReader(is);//将inputStramReader转化为BufferReader
		
		FileWriter fw = new FileWriter("url.txt");
		BufferedWriter bw = new BufferedWriter(fw);
		
		
		String str1 ="";
		String str2="";
		while((str1=br.readLine())!= null)
		{
			str2+=str1;
			str2+="\r\n";
			
		}
		
		bw.write(str2);
		bw.flush();//因为使用的是缓冲字符流,最好加上这句话 否则如果缓存区未满不会将信息写到文件中
		//这也就是为什么有的人会问为什么我的信息没成功写入文件中
		
		is.close();
		br.close();
		fw.close();
		bw.close();
		
	} catch (MalformedURLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
 }
}
package Test3;
 
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class Match {
 
	public void compare(){
	
		try {
			FileReader fr = new FileReader("url.txt");//读取已经抓取的页面信息文件
			BufferedReader br = new BufferedReader(fr);
			
			FileWriter fw = new FileWriter("match.txt");//此文件用力存放有效的博文网址的文件
			BufferedWriter bw = new BufferedWriter(fw);
			
			String str ="";
			String readStr="";
			//编写正则表达式
			String regex="https://blog.csdn.net/\\w{1,}\\_\\d{1,}/article/details/\\d{1,}";
			
			Pattern p =  Pattern.compile(regex);//设置正则规则 不会可以查看Pattern和Matcher这两个类
			while(( readStr=br.readLine())!= null)
			{
				
				Matcher m = p.matcher(readStr);//进行匹配
				 while (m.find()){
					 if(!str.contains(m.group()))
					 {
						 str +=m.group();
		                 str+="\r\n";
					 } 
	               }
			
			}
			bw.write(str);
			bw.flush();//因为使用的是缓冲字符流,最好加上这句话 否则如果缓存区未满不会将信息写到文件中
			//这也就是为什么有的人会问为什么我的信息没成功写入文件中
			
			fr.close();
			br.close();
			fw.close();
			bw.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
package Test3;
 
//import java.awt.Desktop;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
//import java.net.URI;
import java.net.URL;
import java.util.ArrayList;
 
public class DesktopTest3 {
 
 
	public ArrayList<String> strList = new ArrayList<String>();//定义一个String类型的泛型集合
	public int count = 0;	//定义一个变量  用来记录你一共有多少条博文网址
	public int num =0;		//定义一个变量 用来记录你现在完成了第几遍便利
	
	/*
	 * 调用此方法通过正则表达式进行匹配
	 * 匹配有效的博文网址
	 */
	public void match(){
		
		try {
			
			FileReader fr = new FileReader("match.txt");
			BufferedReader br = new BufferedReader(fr);
			String str = "";
			
		    while((str = br.readLine())!= null){
		    	strList.add(str);
		    	count++;
					
				}
			 fr.close();
			 br.close();
			
		} catch (FileNotFoundException e) {
			
			e.printStackTrace();
		}catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	/*
	 * 通过此方法达成打开相应网址的效果
	 */
	public  void browse(String uri){
		
		try {
			URL url = new URL(uri);
			InputStream is =url.openStream();
			
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	
	/*
	 * 此方法为进行无限循环
	 * 并定时休眠线程
	 */
	public  void begin() {
		match();
		int i =0;
		while(true){
			try{
				if(i<count)
				{
					browse((String)strList.get(i));
					Thread.sleep(20000);//这里的单位是毫秒  打开每个博文网址间隔多少ms
				}else{
					i=-1;
					num++;
					System.out.println("完成第"+num+"轮访问");
					// Runtime.getRuntime().exec("taskkill /F /IM firefox.exe");
					Thread.sleep(100000);//这里的单位是毫秒  完成每次总的博文遍历间隔多少ms
				}				
			}catch(Exception e){
				e.printStackTrace();
			}
			i++;
		}
 
	}
 
}
package Test3;
 
public class Start {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		String str = "https://blog.csdn.net/qq_41998273";
		Url url = new Url();
		url.openUrl(str);
		Match match = new Match();
		match.compare();
		DesktopTest3 dt = new DesktopTest3();
		dt.begin();
		
 
	}
 
}

第三步:打开你的博客页面,总页面,如图:

将start类中的网址进行替换,如图

大功告成!!

以下是补充信息:

以上只是想到的程序代码,博客的访问量还是要靠博文的质量来提升的!!!

转自:https://blog.csdn.net/qq_41998273/article/details/86910359

发布了15 篇原创文章 · 获赞 17 · 访问量 4264

猜你喜欢

转载自blog.csdn.net/EricNTH/article/details/104510442