自己动手编写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 0posB += 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程序员,希望有一个交流平台,今天下午我创建了一个QQ群,欢迎Linux开发程序员的加入!
QQ群:Linux开发程序员 (210563904)。
希望能在本群认识 志同道合 的Linux开发程序员!
自己动手编写CSDN博客备份工具-blogspider源码下载(4)相关推荐
- 自己动手编写CSDN博客备份工具-blogspider之源码分析(3)
作者:gzshun. 原创作品,转载请标明出处! 来源:http://blog.csdn.net/gzshun 周星驰:剪头发不应该看别人怎么剪就发神经跟流行,要配合啊!你看你的发型,完全不配合你的脸 ...
- python+shell 备份 CSDN 博客文章,CSDN博客备份工具
python+shell 备份 CSDN 博客文章,CSDN博客备份工具 在 csdn 写了几年的博客了.多少也积累了两三百篇博文,近日,想把自己的这些文章全部备份下来,于是开始寻找解决方案. 我找到 ...
- CSDN 博客备份工具
前言 核心 登录模块 备份模块 博文扫描模块 演示 如何使用 效果 总结 前言 近段时间以来,听群友博友都在谈论着一件事:"CSDN博客怎么没有备份功能啊?".这其实也在一定程度上 ...
- 基于JSP的博客网站建设,源码下载
大家好,我是全微毕设团队的创始人,本团队擅长JAVA(SSM,SSH,SPRINGBOOT).PYTHON.PHP.C#.安卓等多项技术. 今天将为大家分析一个BLOG网站建设(采用当前非常流行的B/ ...
- switchyomega规则列表备份_求人不如求己,自己动手写一个CSDN博客备份小工具?...
前提概要 背景 因为笔者在上个月的时候,突然想扩展一下技术栈,不能仅仅局限于Java,还是得掌握一门工具语言,不然显得太low.所以也就对Python和Golang类的语言有了一些兴趣.也就在上个月简 ...
- 【小工具】CSDN博客导出工具-Java集成Maven开发
CSDN博客导出工具 之前一直想把CSDN的博客导入到自己的网站中,可是由于博客比较多,后面受朋友老郭启发,就找了个时间用Java开发了这款小工具. 转载请注明出处:http://chenhaoxia ...
- 博客备份工具——小收集
打算长期写原创博客了,当然也就要考虑备份问题了.虽然服务器很稳定,但是一旦出什么差错,技术类的东西丢了真的很难恢复,特别痛苦. 所以收集一下可用的工具吧,针对CSDN,因为我们现在有代码片了,不知道各 ...
- 博客备份工具BlogDown 软件使用感想
最近在找博客备份相关的工具,看到了一个不错的博客备份工具BlogDown.使用博客备份BlogDown工具是可以制作博客电子书的.他支持导出多种文件格式,包括常用的电子书格式chm,还有word格式d ...
- html个人博客网站模板(源码)
文章目录 1.设计来源 1.1 首界面 1.2 我的文章界面 1.2 发表文章界面 1.3 文章详细界面 2.效果和源码 2.1 目录结构 2.2 源代码 源码下载 作者:xcLeigh 文章地址:h ...
- html简洁风格的个人博客网站模板(源码)
文章目录 1.设计来源 1.1 博客首界面 1.2 个人简介界面 1.3 日常记录界面 1.4 文章列表界面 1.5 文章信息界面 2.结构源码 2.1 目录结构 2.2 源代码 源码下载 作者:xc ...
最新文章
- java字节对齐 32 64_【C语言】字节对齐问题(以32位系统为例)
- 阿里云HBase推出全新X-Pack服务 定义HBase云服务新标准
- go run/ go install/ go build / go get的区别
- 解决Linux 无法使用userdel 删除用户和组的问题
- JUC并发编程十 并发架构--Unsafe
- 4kyu N linear
- C++ 一个例子彻底搞清楚拷贝构造函数和赋值运算符重载的区别
- 【中学】寻找阿姆斯特朗数
- 21天c语言 ppt,21天学通C语言 第1章 C语言与程序概述.ppt
- 三次曲线和五次曲线函数
- 时间格式转换,转时间戳,转UTC,转中国标准时间
- 安卓客户端微博登陆(文件不存在 C8998)
- 安装MySQL 5.7.11版本,64位绿色版安装【亲测可用】
- git push 报错Push rejected、 remote unpack failed 、unpacker error、 failed to push some refs to
- 从入门到精通:掌握Python核心知识,解锁编程新世界!
- C++数据结构课程设计
- QT之CheckBox单项选择与多项选择
- 安卓app开发方案_「安卓APP开发流程」安卓APP如何开发的?
- linux mint19 无线网卡wifi速度慢解决办法
- 驾照科目一重难点总结