注册 | 登录
收藏 | 帮助
热门文章
编辑推荐
相关文章  
亲手编制Word病毒─自己动手 深入
自己动手清除电脑中的木马程序
建立安全的Web站点
批上安全隐身衣 保护自己畅行网络
全网动态安全体系的建立原则
在防火墙上钻孔:穿透防火墙建立U
建立防火墙的主动性网络安全体系
做自己的救世主:系统安全保卫战
如何建立一个安全的无线连接
教你如何查看自己已经开放的端口
您现在的位置: 顶尖设计 >> IT学院 >> 编程开发 >> Delphi >> 文章正文
建立自己的csdn知识管理库(1)
作者:chenyingchun  来源:chenyingchun 的 Blog  点击:  更新:2006-12-19
简介:

建立自己的csdn知识管理库(1)

 csdn是这两年我上来频率最高的论坛,以前喜欢到大富翁。但是很多时候上来是为了搜索以前的帖子,解决在项目开发中的一些实际问题,搜获不小。但是也有一个遗憾,就是csdn有时候访问速度非常的慢,而且也没有提供官方的离线浏览器。所以就萌生的写一个下载csdn帖子的软件。然后把从csdn接收到的帖子放在自己的知识管理系统里面,或者做成chm 这样效率就高多了。

    再仔细一看 发觉csdn上面的所有帖子都是保存为xml的。这些就更方便了,下载下来后就可以放在数据库里面。或者做成html文件。

http://community.csdn.net/Expert/TopicView1.asp?id=

后面循环加上一个7位数的数字就可以得到一个帖子。

例如:http://community.csdn.net/Expert/TopicView1.asp?id=2800001

多线程 循环就搞定. 为了以后访问的速度, 可以1000条就建立一个目录 ,也就是一个目录只保存1000条。

   开始用.net写的一个winform,软件 发觉速度下载有点慢。后来改为delphi.部分代码如下:

procedure TForm1.SavePage(strId: string; strDir: string);
begin
    try
        UrlDownloadToFile(nil, Pchar(Edit1.text+ strId), Pchar(strDir), 0, nil); //保存ur连接到一个文本文件
    except
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
    strDir: string;
    intStar:integer;
    intEnd:integer;
    i:integer;
    FileName:string;
begin
    try
        intStar:=strToInt(edit2.Text);
        intEnd:=strToint(edit3.text);
        Edit4.Text:=Copy(IntTostr(intStar),0,4);
        strDir:='E:\CSDNBBS\'+Edit4.Text ;
        createDir(strDir);
        dddd:=true;
        for i:=intStar to intEnd do
        begin
            if(i mod 1000)=0 then
            begin
              Edit4.Text:=Copy(IntTostr(i),0,4);
              strDir:='E:\CSDNBBS\'+Edit4.Text ;
              createDir(strDir);
            end;
            self.Refresh;
            if  dddd =false then
               break;
            Application.ProcessMessages;
            try
                FileName := strDir+'\' +IntTostr(i) + '.xml';
                SavePage(IntTostr(i), FileName);
                Edit2.text:=IntTostr(i);
            except
            end;
        end;
    except
    end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
     dddd:=false;
end;

  注意: 在uses里面加入:urlmon;

我已经下载了100多万的帖子了 :)






  • 上一篇文章:
  • 下一篇文章:
  • 分享此文:该页面添加到 Mister Wong 添加到雅虎Yahoo!收藏 Add to:Del.icio.us Post to Furl Digg this 添加到Google书签 reddit spurl blogmarks 365Key 评论  收藏  分享  打印
     我来说两句
    姓名:       验证码:   
    主页: 
    评分: 1分 2分 3分 4分 5分
    本频道近期热评文章:
      关于我们 | 联系我们 | 站点地图 | 广告投放 | 友情链接 | 在线留言 | 版权申明
    版权所有 © 2004-2007 顶尖设计(bobd.cn)
    未经授权禁止转载,摘编,复制本站内容或建立镜像. 沪ICP备07504942号 
    网络110
    报警服务