2012-05-07 22 views
1

大家好!我將編寫網站抓取程序,它從根地址開始,然後抓取每個找到的鏈接(僅限內部鏈接)。所以我面臨這個問題: 爬蟲必須從根開始,然後它應該解析網頁(根頁面),然後獲取所有鏈接。在獲取鏈接時,它不應該抓取同一頁面兩次。夥計們有沒有好的數據結構,還是我需要使用SQL或其他索引數據結構?爬行器的數據結構

回答

4

您可能要查找的數據結構是Tree

對於抓取工具,不需要,因爲從根開始,您可以維護已訪問URL的「列表」,並且每次您要關注鏈接時,檢查是否遇到過之前。如果尚未遇到,則將其添加到列表中並按照它進行操作。

雖然它不一定是一個列表(即數組),但它可以是一個dictionary或其他數據結構,這將有助於加速搜索。

它也可能是一個SQL數據庫或類似像redis這樣的鍵值存儲。如果您使用類似的東西,那麼所有的索引和查詢都會通過數據庫系統提交給您,您可以通過它與標準方法(SQL,特殊API,其他)進行通信。

但是,這很容易,在「抓取」時需要考慮一些更重要的事情,也許最好先檢查一下您是否正在嘗試使用already available crawler