나는 보석에 맞붙고있다. 소스 코드를 체크 아웃하는 경우 https://github.com/scaryguy/vakit수업 내에서 Nokogiri 요청을 여러 번 피하는 방법은 무엇입니까?
, 당신은 내가 그것에서 일부 데이터를 필터링하는 외부 HTML 페이지를 구문 분석하고있어 것을 알 수 있습니다 : 은 여기의 홈페이지입니다.
문제는 하나의 요청으로 모든 데이터를 가져 오지만 Vakit.sabah
또는 Vakit.oglen
을 호출 할 때마다 새로운 요청이 이루어집니다.
require "vakit/version"
require 'vakit/connect'
require 'Nokogiri'
require 'open-uri'
module Vakit
def self.today
Vakit::Connect.shaber
end
def self.imsak
Vakit::Connect.shaber[:imsak]
end
def self.sabah
Vakit::Connect.shaber[:sabah]
end
def self.oglen
Vakit::Connect.shaber[:oglen]
end
def self.ikindi
Vakit::Connect.shaber[:ikindi]
end
def self.aksam
Vakit::Connect.shaber[:aksam]
end
def self.yatsi
Vakit::Connect.shaber[:yatsi]
end
end
나는 그것이 효율적인 방법이라고 생각하지 않습니다.
새로운 요청없이 내 해쉬의 속성에 액세스 할 수 있어야합니다. 그렇지 않아도됩니까?
module Vakit
class Connect
def initialize(opt={})
@path = opt[:path]
end
def self.shaber
doc = Nokogiri::HTML(open('http://www.samanyoluhaber.com/'))
x = doc.css('#hnmzT')
times = []
x.each do |vakit|
data = vakit.children.first.children.last.content
data_add = data.slice(0..data.length-2)
times.push(data_add)
end
times
vakit = {
imsak: times[0],
sabah: times[1],
oglen: times[2],
ikindi: times[3],
aksam: times[4],
yatsi: times[5]
}
end
end
end
나는 어떤 깨달음이 필요합니다.
코드를 작성하여 도움을 요청하지 마십시오. http://sscce.org/ –
업데이트 된 질문보기 – scaryguy