2012-05-31 78 views
2

我希望能夠將數萬頁的政府數據(在幾千個文件夾中)聯網並將它們放到一個文件中。爲了加速這個過程,我想我會先用我的硬盤驅動器下載網站,然後再用Anemone + Nokogiri等網站來抓取它。當我使用政府網站的在線URL嘗試示例代碼時,一切正常,但是當我將URL更改爲本地文件路徑時,代碼將運行,但不會生成任何輸出。下面的代碼:Can Anemone可以抓取存儲在本地硬盤上的html文件嗎?

url="file:///C:/2011/index.html" 

Anemone.crawl(url) do |anemone| 
    titles = [] 
    anemone.on_every_page { |page| titles.push page.doc.at 

('title').inner_html rescue nil } 
    anemone.after_crawl { puts titles.compact } 
end 

所以沒有東西與本地文件名輸出,但如果我插上相應的在線URL它成功地工作。 Anemone以某種方式無法抓取本地目錄結構?如果沒有,是否有其他建議的方式來進行抓取/抓取,或者我應該只在網站的在線版本上運行海葵?謝謝。

回答

1

你有幾個問題這種方法

  1. 海葵預期網址發出HTTP請求和你傳遞一個文件。你可以只加載與引入nokogiri文件,而不是通過它做解析

  2. 上的文件中的鏈接可能是完整的URL,而不是相對路徑,在這種情況下,你仍然需要發出HTTP請求

你可以做的是在本地下載文件,而不是使用nokogiri遍歷它們,並將鏈接轉換爲Nokogiri的本地路徑以加載下一個

+0

是的,釘上它。 Nokogiri本身就是訣竅。它只是需要更多的工作才能讓它遍歷並遵循每個鏈接,但它能夠自行抓取和抓取。在這種情況下,不需要海葵,但也許它會爲我節省一些時間。謝謝尤里。 –

相關問題