2010-02-11 121 views
0

嗨我需要建立一個類似於really.com和其他許多網站,跟蹤一些廣告網站,並解析HTML以在我自己的網站上列出廣告。構建自定義批量搜索引擎的最佳策略?

我知道每個源站點都需要一個特定的策略。那沒問題。我擔心的是我想以批處理方式每小時掃描一次這些網站。

有沒有更好的合適的策略來實現這一目標?我被告知Perl是一個非常強大的批處理腳本語言。是這樣嗎?我如何開始?

最好,

+0

谷歌給我這個:http://www.cs.utk.edu/cs594ipm/perl/crawltut.html – Natrium 2010-02-11 07:20:54

回答

2

好消息是,你可以在Perl中做到這一點。壞消息是這會變得很複雜。就像它會用任何語言。

首先閱讀Learning Perl

接下來,您需要整理您的蜘蛛代碼。

以一次只讀取一頁的簡單單個腳本開始。

有很多獲取網頁的模塊。要使用哪個取決於您的需求。如果你需要刪除Javascript生成的頁面,它會變得更加複雜。從LWP :: Simple或WWW :: Mechanize開始。你可以從那裏擴展。

還有很多解析HTML的模塊。 HTML :: Treebuilder是一個功能強大的模塊,對我來說工作得非常好。

一旦您可以可靠地下載和解析單個頁面,您將需要添加蜘蛛抓取邏輯。接下來,你必須決定如何穿越網站 - 首先是寬度還是深度?你打算去遞歸算法嗎?或者可能是程序方法?

如果您正在掃描許多需要掃描的頁面,則可能需要創建一個控制器來管理多個蜘蛛。您可以使用Coro,AnyEvent,POE,線程或基於策略的管理工作。你選擇什麼取決於你的需求。

您可以使用具有相應驅動程序(例如DBD :: MySQL)的DBI模塊將數據插入到數據庫中。

現在您只需生成您的網絡應用程序。有許多不同級別的複雜性和功能可用的工具包。 CGI :: Application和Catalyst是兩個流行的庫。 HTML ::梅森和蹲是一些其他的選擇。

我列出的所有模塊都可以在CPAN上找到。恰當地使用,CPAN將爲您節省大量的工作。對於許多任務來說,問題是太多的選擇,而不是缺乏它們。

這本書當然可以在任何地方出售書籍。