В настоящее время я создаю приложение, которое будет просто посещать веб-сайт каждый день и сохранять информацию о конкретной таблице этого сайта в базу данных, которую я настроил.В настоящее время я создал метод класса на моей модели, чтобы завершить очистку.Созданная мною рейк-задача вызывает метод класса один раз в день.
Хотя мой код «работает» и я собираю информацию один раз в день, я чувствую себя несколько странно, оставляя логику для очистки в моей модели, и яЛюбопытно, есть ли предпочтительный способ выполнить эту задачу.
class WebTable < ApplicationRecord
def self.scrape_and_save_table_information
doc = Nokogiri::HTML(open('https://www.calottery.com/play/scratchers-games/top-prizes-remaining'))
rows = doc.css("tbody tr")
rows.each do |row|
row_object = {}
row_object["cell_one"] = row.children[1].children[0].to_s
row_object["cell_two"] = row.children[2].children[0].children.to_s
row_object["cell_three"] = row.children[7].children[0].children[0].to_s
@table = WebTable.create(row_object)
end
end
end
Моя задача по рейку выглядит следующим образом:
desc 'scraping webpages'
task scrape_web_pages: :environment do
daily_prize_scrape = WebTable.scrape_and_save_table_information
end