肉砣砣- Intro
Abstract: (We have a abstract because I want to make this serious.) Web毫无疑问已经是新世纪主要的信息交流平台。成千上万的人选择Blog来保存自己的生活点滴,分享自己的情绪,交流各种经验和知识。然而,不同的BSP却因为各自系统实现的不同,造成了很多用户数据迁移的不便。“肉砣砣”是一个使用python实现的开源系统,通过对网页的抓取和分析,实现数据迁移。本文和其他几篇系列文章,希望能良好的说明系统的设计和实现,方便使用者进行使用和扩展。
其实,如何在网络上发现感兴趣的内容,是互联网诞生之后一直很火热的话题。每个公司的做法并不相同。比如微软有个项目叫做Honey Monkey,用来发现有害网站。做法是运行很多个vm,每个vm上面跑一个IE,并控制该IE实现一些类似真人浏览的动作。当发现“问题”的时候,系统就记录当前浏览的网站。很显然,微软要这么动态的收集有害网站,要不就得自己买一堆机器跑这些vm,要不就得利用大家的电脑偷偷干它的活,当然,微软嘛,一直比较喜欢后者。
而像Google、百度这些公司的搜索引擎,会放crawler(或者叫robot)出去把感兴趣的内容爬回来。很多做独立blog的人喜欢研究SEO,其实很大一部分内容就是要怎么去满足那些虫虫的兽欲。
整个肉砣砣系统也是基于crawler的。它实际上由三个主要部分组成:crawler(介绍),analyzer(介绍to be done)和exporter(介绍to be done)。三者的合作可以简单的描述为:
(1)首先,用户提供需要的参数,包括需要搬迁的blog的url,BSP类型,抓取线程数量,抓取时间频度等等。crawler根据这些参数启动抓取工作。
(2)analyzer分析crawler抓回的页面。遇到超链接,判断是否为感兴趣的链接(日志或评论页面等),如果是,放入crawler抓取队列。遇到感兴趣的内容,则按照Exporter使用的数据库格式写入数据库(其实是一个字典)。
(3)当满足退出条件时(可以是所有感兴趣的链接抓取完毕,可以是超过了页面抓取数量最大值,可以是网络超时等),Exporter根据数据库中的信息,生成wrx。

1 Comment
Jump to comment form | comments rss [?] | trackback uri [?]