大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
来源: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之源码分析(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)) {
/*查找博客标题*/
+ #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程序员,希望有一个交流平台,今天下午我创建了一个QQ群,欢迎Linux开发程序员的加入!
QQ群:Linux开发程序员 (210563904)。
希望能在本群认识 志同道合 的Linux开发程序员!
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/164226.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...