나는 마지막 게임의 결과 조건 또는 게임 데이터가있는 마지막 행 (승/패 및 게임 번호)을 기준으로 작은 앱을 만듭니다.가장 최근의 테이블 행과 해당 데이터에 액세스
내 문제는 마지막 행의 첫 번째 열 (가장 최근에 재생 된 게임)에 액세스하는 것입니다. 어떻게 완성 되었습니까?
require 'open-uri'
class BrooklynPizzaController < ApplicationController
def index
# URL for dynamic content
url = "http://www.basketball-reference.com/teams/BRK/2015_games.html"
# Open URL using nokogiri
doc = Nokogiri::HTML(open(url))
# Scrape result from Web site
@result = doc.css("#teams_games").xpath("//table/tbody/tr/td[8]/text()")
# IN PROGRESS - Get date of last game played
@result_date = doc.xpath('//table/tbody/tr/td[2]/a/text()') do |link|
@result_date[link.text.strip] = link['a']
end
###############################################################
# IN PROGRESS - Get number of last game played from 1st column
# doc.xpath('//table/tbody/tr/td[1]/text()') do |game|
# last_game_number =
# end
################################################################
# @result_date = doc.css("#teams_games").xpath("//table/tbody/tr/td[2]/text()")
# Set date to current
@date = Date.today
# Get date of last game played
if (@result.last.next == nil)
flag = doc.xpath("//table/tbody/tr[#{@result}]")
@result_date = doc.xpath("//table/tbody/tr#{flag}/td[2]/a/text()")
end
end
end
제가 몇 가지를 남겨 두었다 같은 느낌 때문에, 당신을주는거야 정보의 어떤 부족 알려 주시기 바랍니다.
'last_row'을 행 x (이 경우, 이미지에서 행/게임 13으로 표시됨), 전체 표의 마지막 행이 아니라 열 8에 W 또는 L (플래그)이있는 가장 최근의 마지막 행을 나타내야합니다. –
[출처] (http://www.basketball-reference.com/teams/BRK/2015_games.html) –
선택자가 애매하고 혼동 될 수있는 경우가 아니면'at_css' (또는'css')를 사용할 필요가 없습니다 XPath. 더 짧은'at '(또는'search')는 보통 올바른 일을합니다. 또한, 속도가 중요하다면'parse'는 날짜 형식을 지정하고'strptime'을 사용하는 것보다 훨씬 느립니다. –