构建自定义批量搜索引擎的最佳策略?

时间:2010-02-11 07:17:24

标签: perl batch-file search-engine

您好我需要建立一个类似于Indeed.com和其他许多网站的网站,跟踪多个广告网站并解析HTML以在我自己的网站中列出广告。

我知道每个源站点都需要一个特定的策略。那没问题。我担心的是,我希望每小时以批量方式扫描网站。

有没有更合适的策略来实现这一目标?我被告知Perl是一种非常强大的批处理脚本语言。是这样的吗?我该如何开始?

最佳,

1 个答案:

答案 0 :(得分:2)

好消息是,你可以在Perl中做到这一点。坏消息是,这将变得复杂。就像用任何语言一样。

首先阅读Learning Perl

接下来,您需要整理您的蜘蛛网代码。

从一个简单的单个脚本开始,一次读取一页。

有很多模块可以获取网页。使用哪个取决于您的需求。如果你需要刮掉Javascript生成的页面,它会变得更加复杂。从LWP :: Simple或WWW :: Mechanize开始。你可以从那里扩展。

还有许多用于解析HTML的模块。 HTML :: Treebuilder是一个功能强大的模块,对我来说效果非常好。

一旦可以可靠地下载和解析单个页面,您将需要添加蜘蛛网逻辑。接下来,你必须决定你想要如何遍历网站 - 首先是广度还是深度?你打算用递归的算法吗?或者也许是程序方法?

如果要扫描需要扫描的许多页面,则可能需要创建一个控制器来管理多个蜘蛛。您可以使用Coro,AnyEvent,POE,线程或基于fork的策略来管理您的员工。您选择的将取决于您的需求。

您可以将DBI模块与相应的驱动程序(例如DBD :: MySQL)一起使用,以在数据库中插入数据。

您现在要做的就是生成您的网络应用。有许多不同级别的复杂性和功能可用的工具包。 CGI :: Application和Catalyst是两个流行的库。 HTML :: Mason和Squatting是其他一些选择。

我列出的所有模块都可以在CPAN上找到。如果使用得当,CPAN将为您节省大量的工作。对于许多任务来说,问题是选择太多而不是缺乏选择。

当然,这本书可以出售书籍。