java程序,保存csdn 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="#";

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值