10

Nokogiri を使用して<h1>and<title>タグをプルしていますが、これらを取得するのに問題があります。

<meta name="description" content="I design and develop websites and applications.">
<meta name="keywords" content="web designer,web developer">

私はこのコードを持っています:

url = 'https://en.wikipedia.org/wiki/Emma_Watson' 
page = Nokogiri::HTML(open(url))

puts page.css('title')[0].text puts page.css('h1')[0].text
puts page.css('description')
puts META DESCRIPTION
puts META KEYWORDS

私はドキュメントを見ましたが、何も見つかりませんでした。これを行うために正規表現を使用しますか?

ありがとう。

4

3 に答える 3

11

これが私がそれについて行く方法です:

require 'nokogiri'

doc = Nokogiri::HTML(<<EOT)
<meta name="description" content="I design and develop websites and applications.">
<meta name="keywords" content="web designer,web developer">
EOT

contents = %w[description keywords].map { |name|
  doc.at("meta[name='#{name}']")['content']
}
contents # => ["I design and develop websites and applications.", "web designer,web developer"]

または:

contents = doc.search("meta[name='description'], meta[name='keywords']").map { |n| 
  n['content'] 
}
contents # => ["I design and develop websites and applications.", "web designer,web developer"]
于 2013-07-22T19:05:45.140 に答える