【问题标题】:Best strategy to build custom batch search engine?构建自定义批量搜索引擎的最佳策略?
【发布时间】:2010-02-11 15:45:02
【问题描述】:

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

我知道每个源站点都需要特定的策略。那没问题。我担心的是我想以批处理方式每小时扫描一次站点。

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

最好的,

【问题讨论】:

标签: perl batch-file search-engine


【解决方案1】:

好消息是,您可以在 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 将为您节省大量工作。对于许多任务来说,问题在于选择太多,而不是缺少选择。

这本书当然可以在任何出售书籍的地方买到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 2015-05-20
    • 2011-06-06
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    相关资源
    最近更新 更多