如何增加訪問量,閱讀量(轉)

用的是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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章