自己动手编写CSDN博客备份工具-blogspider源码下载(4)

作者:gzshun. 原创作品,转载请标明出处!
来源:http://blog.csdn.net/gzshun


本博文需要声明几点:

1.blogspider_v1.0源码已经更新,文件名为"blogspider_v2.0.tar.bz2",下载地址在下文。
2.该备份工具用其他语言(比如Java,PHP)可能比较简单,但本人只会C/C++。
3.blogspider_v1.0源码报错,原因是:CSDN博客的HTML文件修改。我需要说明的是:请大家不要将该程序应用于非法用途,以免造成CSDN网站服务器的负载,请遵循"备份CSDN博客"原则。可能CSDN技术人员发现该程序是直接解析HTML文件,所以修改HTML文件避免该程序的运行(猜想)。


前段时间比较忙,没时间回复大家的评论与邮件,在这里感谢各位同志的支持。一些哥们儿建议将blogspider源码上传到CSDN的下载频道,正好今天有空,再把该系列文章做个总结,给大家提供blogspider下载地址。

前面已经写了几篇文章,需要的马上跳转:

自己动手编写CSDN博客备份工具-blogspider

自己动手编写CSDN博客备份工具-blogspider之源码分析(1)

自己动手编写CSDN博客备份工具-blogspider之源码分析(2)

自己动手编写CSDN博客备份工具-blogspider之源码分析(3)


一.blogspider程序提示"Segmentation fault"错误

最近blogspider程序会出现段错误,提示"Segmentation fault"错误。刚才我调试了一下,程序本身没有问题,原因是CSDN博客的HTML文件的格式发生变化,所以strstr函数出错。本程序原来是直接分析HTML文件来获取博客信息,所以blogspider存在这个局限性,我已经修改最新的HTML文件的解析函数,出错在analyse_index函数中。
以下是diff命令的结果:

--- blogspider_src.c 2012-01-16 01:12:15.657184878 +0800 +++ blogspider_update.c 2012-01-16 01:09:19.629534441 +0800 @@ -570,6 +570,7 @@ static int analyse_index(blog_spider *spider_head) { FILE *fp; + int i; int ret; int len; int reads, comments; @@ -610,14 +611,29 @@ sprintf(url, "%s%s", CSDN_BLOG_URL, posA); /*查找博客标题*/ + #if 0 posB += 1; posC = strstr(posB, BLOG_TITLE); /*与博客地址处在同一行*/ posC += strlen(BLOG_TITLE); posD = strstr(posC, "\">"); *posD = 0; - memset(title, 0, sizeof(title)); - strcpy(title, posC); + #else + /*在博客地址的下一行*/ + fgets(line, sizeof(line), fp); + + i = 0; + while (1) { + /*从第一个不是空格的字符开始读取*/ + if (line[i] != ' ') { + memset(title, 0, sizeof(title)); + line[strlen(line) - 1] = 0; + strcpy(title, line + i); + break; + } + i++; + } + #endif /*查找博客发表日期*/ while (fgets(line, sizeof(line), fp)) {
二.blogspsider_v2.0运行结果,可以成功备份CSDN博客

gzshun@ubuntu:~/c/blogspider_v2.0$ ./blogspider gzshun ...................................... CSDN ID : gzshun TITLE : Open Linux C/C++专栏 URL : http://blog.csdn.net/gzshun 访问:69747次 积分:1339分 排名:第4132名 原创:32篇 转载:6篇 译文:0篇 评论:302条 Download ==> 2012-01-29 16:48 1.自己动手编写CSDN博客备份工具-blogspider之源码分析(3) Download ==> 2012-01-20 23:27 2.自己动手编写CSDN博客备份工具-blogspider之源码分析(2) Download ==> 2012-01-17 23:16 3.自己动手编写CSDN博客备份工具-blogspider之源码分析(1) Download ==> 2012-01-15 16:40 4.自己动手编写CSDN博客备份工具-blogspider Download ==> 2012-01-12 23:32 5.2011年各大知名软件公司校招聘软件研发类薪资待遇 Download ==> 2012-01-06 23:27 6.如何编写一个完整的Linux命令 Download ==> 2012-01-05 12:48 7.北漂族一票难求 Download ==> 2012-01-03 17:45 8.Android源码分析系列-整理篇 Download ==> 2012-01-03 10:22 9.Android-Vold, Framework和UI的通信-大结局(12) Download ==> 2012-01-02 19:25 10.Android-vold源码分析之连接电脑OTG(11) Download ==> 2012-01-01 22:34 11.张孝祥老师,您一路走好! Download ==> 2012-01-01 18:01 12.一个北漂程序员在新年的反思 Download ==> 2012-01-01 11:15 13.Android-vold源码分析之格式化SD卡(10) Download ==> 2011-12-31 21:20 14.Android-vold源码分析之卸载SD卡(9) Download ==> 2011-12-30 20:15 15.Android-vold源码分析之挂载SD卡(8) Download ==> 2011-12-29 22:12 16.Android-vold源码分析之runCommand(7) Download ==> 2011-12-28 23:10 17.Android-vold源码分析之startListener(6) Download ==> 2011-12-27 23:41 18.嵌入式Linux下fdisk处理磁盘MBR的可选ID Download ==> 2011-12-27 22:32 19.Android-vold源码分析之handleBlockEvent(5) Download ==> 2011-12-26 22:30 20.Android磁盘管理-之vold源码分析(4) Download ==> 2011-12-25 00:02 21.Android磁盘管理-之vold源码分析(3) Download ==> 2011-12-23 22:38 22.Android磁盘管理-之vold源码分析(2) Download ==> 2011-12-22 21:47 23.Android磁盘管理-系统源码分析(1) Download ==> 2011-12-18 16:10 24.C语言sscanf函数的总结 Download ==> 2011-12-17 21:28 25.CRC32校验算法-C实现 Download ==> 2011-12-10 12:49 26.软件行业排名前100名的企业大全 Download ==> 2011-12-08 21:16 27.Android移植oprofile性能监测工具 Download ==> 2011-12-07 21:42 28.移植mtd-utils工具包--使用教程 Download ==> 2011-12-07 21:39 29.移植fontconfig软件包 Download ==> 2011-11-22 23:10 30.Ubuntu Server基本的环境搭建 Download ==> 2011-11-21 23:43 31.开发环境的小见解 Download ==> 2011-11-19 00:00 32.经典网站 Download ==> 2011-11-18 23:41 33.创业及野心的一定要看 Download ==> 2011-11-18 23:19 34.创业公司CEO每周应该做的13件事 Download ==> 2011-11-18 23:15 35.开始写博客 Download ==> 2011-07-21 22:13 36.我的CSDN博客终于能用了 Download ==> 2011-03-05 12:10 37.如何坚持嵌入式学习(转载) Download ==> 2010-11-19 08:22 38.[转载]中国最致命的薄弱环节!(一个机械类毕业生的心声)
三.下载地址

春节期间,大家都很忙,赶着给亲朋好友拜年,我也不例外,时间比较少。很多同志们依然奋斗,向我要blogspider的源代码,除了CSDN博客的评论脚印,还有私底下发给我的已经有上百份,我想不是办法,我将本程序上传到CSDN的下载频道供大家下载。

CSDN博客备份工具:blogspider_v2.0.tar.bz2点击这里进入下载页面


四.联系方式

若程序出现问题,可以联系我的邮箱:gzshuns#163.com (# -> @)

我发现搞Linux的同行非常多啊,大家都是Linux程序员,希望有一个交流平台,今天下午我创建了一个,欢迎Linux开发程序员的加入!
:Linux开发程序员 (210563904)。
希望能在本群认识 志同道合 的Linux开发程序员!

阅读更多
换一批

没有更多推荐了,返回首页