肉砣砣- 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。

Diagram1



  1. ke 6.16.11 / 10下午

    由于学业的关系,现在在做网页crawling的方向的东西,看了您写的肉砣砣觉得挺不错的!不过由于我现在要改动程序这让我这个没啥经验的人很苦恼(这里卡了我1,2个月了),所以如果您能指点我一下我将不慎感激!
    主要现在我是在做是关于thematic crawler的,也就是带方向(主题)的网页爬虫:
    主要思想是从一些关键字入手在搜索引擎搜索,然后把搜索到的网页提供给爬虫进行挖掘,爬虫会找到所有的链接以及链接周围的文字(如何提取这样的文字呢?),把所有链接放入一个列表,然后对比和关键字最相配的链接进行向下挖掘(找到其所有的子链接),然后把列表中的母链接换成其所有子链接重新找和关键字最相近的链接,如此循环,直到满足必要条件结束。对我的难点在于在程序哪里改动来符合这个思想和如何提取网页,链接,子链接提及它们周围的文字。这让我百思不得其解,所以很冒昧地来请教您,希望得到您的指点和帮助!可能这个对您来说不会很困难,但对迷途中的人来说没有一些指点还真的很难弄出来,而一得到指点或许就是另外一个天地了(在这里回复我也可以或者直接发到我的邮箱:yannick.crystal@gmail.com,再次感谢!)!

Have your say

:want: :w00t: :tongue: :thrwon: :smile: :sick: :shock: :sad: :ninja: :getlost: :ermm: :dizzy: :devil: :cool: :boring: :blush: :blink: :angry: :angel:



Safari hates me


Douban Update

Get the Flash Player to see the slideshow.
去看看吧