java程序,保存csdn blog的文章

王朝java/jsp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

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+" 篇文章");

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
>>返回首页<<
推荐阅读
 
 
频道精选
© 2005- 王朝网络 版权所有