`
shangjava
  • 浏览: 1190015 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

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


唐僧:你想要啊?悟空,你要是想要的话你就说话嘛,你不说我怎么知道你想要呢,虽然你很有诚意地看着我,可是你还是要跟我说你想要的。你真的想要吗?那你就拿去吧!你不是真的想要吧?难道你真的想要吗?……
悟空:我Kao!


在开篇,先happy下,有个好心情,才能天天向上,奋发图强,自强不息。

继《自己动手编写CSDN博客备份工具-blogspider》与《自己动手编写CSDN博客备份工具-blogspider之源码分析(1)》博文后,继续贴出处理的一些函数,原理很简单。

一.在博客的下载过程中,打印了一些信息到屏幕,也保存到了*.log文件


唐僧:喂喂喂!大家不要生气,生气会犯了嗔戒的!悟空你也太调皮了,我跟你说过叫你不要乱扔东西,你怎么又…你看我还没说完你又把棍子给扔掉了!月光宝盒是宝物,你把他扔掉会污染花草草也是不对的!

二.申请了空间,在程序结束后必须释放,要不内存泄露了,污染到内存,污染到花花草草也是不对的.


三.下载个人博客的主页,并分析出必要的信息,比如下载:http://blog.csdn.net/gzshun主页,程序将该文件保存到了本地的"index.html"文件中,先贴出一点html文件的源码,这样就更加清晰的了解代码的字符串解析:

博客标题:


博客的总页数:


博客的排名,积分信息:


贴出源码,这几个字符串解析函数没必要看,自己看下html的规则就能解析出来了:


以上使用了rank_info_addr数组,是为了在while (fgets(line, sizeof(line), fp)) 循环里面方便赋值。
博客里面可能有很多页,必须我的博客就有2页,这时候网址是这样:
http://blog.csdn.net/gzshun/article/list/1
http://blog.csdn.net/gzshun/article/list/2

所以循环下载blog.csdn.net对应自己的博客列表就行,网页文件的名称如:/gzshun/article/list/1 把gzshun改为自己的csdn的id就是了。

先来杯咖啡,待下一篇文章,前几天奔波在火车上,辛苦啊,今天及时赶到,马上发表,持之以恒。。

分享到:
评论

相关推荐

    CSDN博客备份工具-blogspider_v2.0.tar.bz2

    CSDN博客备份工具blogspider,可以备份自己所有的CSDN博客到本地,也可以备份别人的博客。若需要保存别人的技术博客或自己的问题,blogspider可以帮你达到目的。若blogspider程序出现问题,可以关注我的CSDN博客,...

    CSDN博客下载器v2.2

    好消息:CSDN博客下载器v2.0版本增加导出PDF文件功能,方便查看图片与文章。 在无网络环境,也可以看自己的一些文章。当然如果您发现CSDN博客的一些文章值得收藏,你也可以使用本软件轻松的下载到您的电脑。 该版本...

    blogspider

    我的毕业设计,用于抓取百度空间的博客以备份到本地数据库中,可以下载图片到文件系统中。 <br>代码拿出来供大家分享,希望有人一起研究进步。下面是baidu空间所使用数据库的代码,谢谢 create database ...

    csdnBlogSpider:博客备份实用程序

    我们可以使用它来增加csdn id的访问时间,这也是一个博客备份实用程序。 python版本的Blogspider是单线程的,但很简单。 可以与C版本进行比较。 构建csdnBlogSpider 可以在ubuntu 3.11.3上编译和使用...

    机械设计家用手摇面条机sw18可编辑非常好的设计图纸100%好用.zip

    机械设计家用手摇面条机sw18可编辑非常好的设计图纸100%好用.zip

    机械设计托盘库推车sw12可编辑非常好的设计图纸100%好用.zip

    机械设计托盘库推车sw12可编辑非常好的设计图纸100%好用.zip

    node-v12.18.4-linux-arm64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    YOLOV5 分类实战:7种小麦叶片病害分类

    YOLOV5 实战对小麦叶片病害检测分类数据集,包含代码、数据集、训练好的权重参数,经测试,代码可以直接使用。 【yolov5】项目总大小:300MB 训练了10个epoch,top1准确度分别达到了0.93+。这里仅仅训练了10个epoch,网络还没收敛,加大轮次可以获取更高的网络性能 【如何训练】摆放好datasets数据,即可训练 更多yolov5改进介绍、或者如何训练,请参考: https://blog.csdn.net/qq_44886601/category_12605353.html

    单片机课程实验-秒表实现

    1.了解LED数码管的工作原理,为秒表时钟模块的实现打下基础。 LED数码管是一种常用的数字显示器件,通过控制每个LED的亮灭来显示数字。在秒表时钟模块中,我们需要利用LED数码管的这一特性,通过单片机控制数码管的显示,从而实现时钟的功能。因此,了解LED数码管的工作原理对于实现秒表时钟模块至关重要。 2.掌握51单片机与LED数码管的接口技术,是实现秒表时钟模块的关键。 51单片机是一种常用的微控制器,可以通过接口与外部设备进行通信。在秒表时钟模块中,我们需要通过单片机与LED数码管之间的接口,控制数码管的显示。因此,掌握51单片机与LED数码管的接口技术是实现秒表时钟模块的关键。在实际操作中,我们需要根据接口协议和数据传输方式,编写相应的程序来控制数码管的显示。 3.合理利用定时器/计数器,是实现秒表时钟模块的效率保障。 在秒表时钟模块中,我们需要实现计时功能,这需要使用到定时器/计数器。定时器/计数器可以用来产生计时脉冲,从而控制秒表的计时。通过合理利用定时器/计数器,可以提高秒表时钟模块的计时精度和效率。在实际操作中,我们需要根据具体的应用场景和需求,选择合适的定时器/计数器参

    机械设计2T双轴变位机L型sw12非常好的设计图纸100%好用.zip

    机械设计2T双轴变位机L型sw12非常好的设计图纸100%好用.zip

    node-v10.16.3-sunos-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    STM32F4通过串口屏设置ADF4351输出信号频率,HAL库开发

    本项目基于HAL库开发,使用STM32F407作为主控芯片,串口通信过程使用了特殊的帧头帧尾,实现了通过串口触摸屏设置ADF4351输出信号频率。项目包含了陶晶弛串口屏的界面设计。

    金融产品设计报告.docx

    金融产品设计报告.docx

    C++ 实验三 基本图形生成算法

    C++ 实验三 基本图形生成算法

    6金融需求理论.docx

    6金融需求理论.docx

    node-v10.22.1-sunos-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    数据结构实验代码行编辑.rar

    数据结构实验代码

    新版广州社区智慧养老解决方案ppt.docx

    新版广州社区智慧养老解决方案ppt

    Python实现Python解释器 优秀课程作业

    python实现python解释器 1.该python解释器是一个模拟堆栈机器的虚拟机 2.基本指令:LOAD_VALUE,将数据压入栈中,STORE_NAME,将栈顶内容存入变量,LOAD_NAME,将变量的内容压入栈中 dis是一个字节码反汇编器 3.LOAD_CONST相当于LOAD_VALUE,STORE_FAST相当于STORE_NAME 4.帧:帧包含了一段代码运行所需要的信息与上下文环境,帧在代码执行时被动态地创建与销毁,每一个帧的创建对应一次函数调用,所以每一个帧都有一个code object与其关联,同时一个code object可以拥有多个帧,因为一个函数可以递归调用自己多次 5.调用栈:每当你在当前函数内调用一次函数就在当前调用栈上压入所调用的函数的帧,在所调用函数返回时再将该帧弹出 数据栈:执行字节码操作时使用的栈 块栈:用于特定的控制流,比如循环与异常处理;每一个帧都拥有自己的数据栈与块栈

    index.vue

    index.vue

Global site tag (gtag.js) - Google Analytics