CSDN 的blog经常出问题, 大家可能都领教过了
  过年了,可能几天不能来上网了
  就想把csdn blog自己的文章备份一下
  于是就写了这个程序,用java写的
  大家可以看看, 代码如下:
 
 
  /** 使用的时候,需要修改strurl为自己的blog地址
  程序会在当前目录下保存文件 
具体,可以根据自己的需要适当修改
  慈勤强编写 */ 
import java.io.*;
  import java.net.*; 
class csdn  {     public static void main(String[] args)  throws Exception  {   String strUrl;     String ss;   int icount=0; 
  //处理月份开始,连接首页,分析月份   StringBuffer sbMonth=new StringBuffer("");
    strUrl="http://blog.csdn.net/cqq/";
    URL url = new URL(strUrl);
    URLConnection conn = url.openConnection();
    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF8"));
    System.out.println("连接成功。");
    int i=0;   int j=0;
    while ((ss=rd.readLine())!=null)   {
     if(ss.indexOf("年")>0&&ss.indexOf("id")>0&&ss.indexOf("SingleColumn")>0)    {     i=ss.indexOf("archive");     if(i>0)     {      j=ss.indexOf(".aspx",i);      if(j>0)      {       sbMonth.append(strUrl+"/"+ss.substring(i,j)+".aspx");       sbMonth.append(",");      }     }            }   }   rd.close();   System.out.println("分析月份列表成功");   //处理月份结束,得到一个包含每月URL地址的sbMonth字符串 
   //处理每月,分析每月文章列表   StringBuffer sbArticle=new StringBuffer("");   String[] str=sbMonth.toString().split(",");
    for(int i_m=0;i_m<str.length;i_m++)   {        strUrl=str[i_m];     url = new URL(strUrl);           conn = url.openConnection();           rd = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF8"));     boolean bPrint=false; 
    while ((ss=rd.readLine())!=null)     {      if(ss.indexOf("postTitle")>0)      {       bPrint=true;      }      if(ss.indexOf("postText")>0)      {       bPrint=false;      }      if(bPrint)      {              i=ss.indexOf("http");       if(i>0)       {        j=ss.indexOf(".aspx",i);        if(j>0)        {         sbArticle.append(ss.substring(i,j)+".aspx");         sbArticle.append(",");        }       }        }     }   }   System.out.println("获取所有文章的URL地址列表成功");   //获取每月文章列表结束,得到所有文章的URL地址 
   //获取每篇文章内容开始   System.out.println("\r\n保存文章开始...");   String[] str1=sbArticle.toString().split(",");   for(int i_n=0;i_n<str1.length;i_n++)   {           icount++;     strUrl=str1[i_n];     StringBuffer sb=new StringBuffer("");     System.out.println(strUrl);     url = new URL(strUrl);           conn = url.openConnection();           rd = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF8"));     boolean bPrint1=false;     boolean bPrint2=false; 
    RandomAccessFile rf=new RandomAccessFile("csdn_cqq_"+icount+".htm","rw"); 
    boolean bb=true;     while ((ss=rd.readLine())!=null&&bb)     { 
     if(ss.indexOf("postTitle")>0)      {       bPrint1=true;      }      if(ss.indexOf("postfoot")>0)      {       bPrint1=false;      }      if(bPrint1)      {       sb.append(ss);      }          }          byte [] b;     b=sb.toString().getBytes();     rf.write(b);     rf.close();   }   System.out.println("完成,总共保存 "+icount+" 篇文章");  }  }
 
 
   
 
  |