Anemone 可以抓取本地硬盘上存储的 html 文件吗?

问题描述 投票:0回答:1

我希望将在线的数万页政府数据(在数千个文件夹中)收集起来,并将其全部放入一个文件中。为了加快这个过程,我想我应该先将该网站下载到我的硬盘上,然后再使用 Anemone + Nokogiri 之类的东西对其进行爬行。当我使用政府网站的在线 URL 尝试示例代码时,一切正常,但是当我将 URL 更改为本地文件路径时,代码会运行,但不会产生任何输出。这是代码:

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 是否无法抓取本地目录结构?如果没有,是否有其他建议的方法来进行这种爬行/抓取,或者我应该简单地在网站的在线版本上运行 Anemone?谢谢。

ruby-on-rails ruby web-scraping web-crawler anemone
1个回答
1
投票

这种方法有几个问题

  1. Anemone 期望一个网址发出 http 请求,而您正在向它传递一个文件。您可以使用 nokogiri 加载文件并通过它进行解析

  2. 文件上的链接可能是完整的url而不是相对路径,在这种情况下你仍然需要发出http请求

您可以做的就是在本地下载文件,然后使用 nokogiri 遍历它们并将链接转换为本地路径,以便 Nokogiri 下一步加载

© www.soinside.com 2019 - 2024. All rights reserved.