0

私は小さなSinatraアプリを持っています:

app.rb:

get '/' do
  # the first two lines are lifted directly from our previous script
  url = "http://www.nba.com/"
  data = Nokogiri::HTML(open(url))

  # this line has only be adjusted slightly with the inclusion of an ampersand
  # before concerts.  This creates an instance variable that can be referenced
  # in our display logic (view).
  @headlines = data.css('#nbaAssistSkip')
  @top_stories = data.css('#nbaAssistSkip')

  # this tells sinatra to render the Embedded Ruby template /views/shows.erb
  erb :shows
end

show.erb:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title>Nokogiri App</title>
</head>
<body>
  <div>
  <h2><%= @headlines %></h2>
  <p><%= @top_stories %></p>
  </div>
</body>
</html>

Nokogiri は初めてで、.nbaBreakingNewsdiv 内のリンクからテキストを抽出する方法を知りたいと思っていました (例: Live on NBA...):

ここに画像の説明を入力

そして、それらを私のテンプレートに表示します。

(現在、クラスと ID を使用して html タグからテキストを抽出する方法しか知りません)。

4

1 に答える 1

1

これらのセクションのa要素は次のとおりです。

data.css('.nbaBreakingNewscv a')

これはa、 class を持つ要素から派生するすべての要素を意味しますnbaBreakingNewscv。これらのa要素のテキストを表示するには、次のようにします。

data.css('.nbaBreakingNewscv a').each do |a|
  puts a.text
end
于 2013-08-07T01:11:44.900 に答える