Может ли Anemone сканировать HTML-файлы, хранящиеся локально на моем жестком диске?

Я надеюсь собрать воедино несколько десятков тысяч страниц правительственных данных (в нескольких тысячах папок), которые находятся в сети, и поместить все это в один файл. Чтобы ускорить процесс, я решил сначала загрузить сайт на свой жесткий диск, а потом сканировать его с помощью чего-то вроде Anemone + Nokogiri. Когда я попробовал пример кода с онлайн-адресом правительственного сайта, все работало нормально, но когда я меняю 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 в онлайн-версии сайта? Благодарю.

1 ответ

Решение

У вас есть пара проблем с этим подходом

  1. Анемон ожидает, что веб-адрес выдаст запрос http, а вы передаете ему файл. Вы можете просто загрузить файл с помощью nokogiri и выполнить его разбор

  2. Ссылки на файлы могут быть полными URL-адресами, а не относительными путями, в этом случае вам все равно нужно выполнить запрос http

Что вы можете сделать, это загрузить файлы локально, затем пройти через них с помощью nokogiri и преобразовать ссылки на локальный путь для загрузки Nokogiri в следующем

Другие вопросы по тегам