まず、NodeSetではなくノードを取得するようにNokogiriに指示します。at_css
Nodeをcss
取得し、配列のようなNodeSetを取得します。
それ以外の:
website = business.css('.website-feature')
試す:
website = at_css('a.track-visit-website no-tracks')
<a>
を使用してノードの最初のインスタンスを取得しますclass="website-feature"
。必要な最初のインスタンスでない場合は、NodeSetを取得してインデックスを作成することにより、インスタンスを絞り込む必要があります。周囲のHTMLがなければ、これ以上支援することは困難です。
ノードからパラメータを取得するにはhref
、ノードをハッシュのように扱うだけです。
website['href']
戻る必要があります:
http://urlofsite.com
これがIRBからの小さなサンプルです:
irb(main):001:0> require 'nokogiri'
=> true
irb(main):002:0>
irb(main):003:0* html = '<a class="this_node" href="http://example.com">'
=> "<a class=\"this_node\" href=\"http://example.com\">"
irb(main):004:0> doc = Nokogiri::HTML.parse(html)
=> #<Nokogiri::HTML::Document:0x8041e2ec name="document" children=[#<Nokogiri::XML::DTD:0x8041d20c name="html">, #<Nokogiri::XML::Element:0x805a2a14 name="html" children=[#<Nokogiri::XML::Element:0x805df8b0 name="body" children=[#<Nokogiri::XML::Element:0x8084c5d0 name="a" attributes=[#<Nokogiri::XML::Attr:0x80860170 name="class" value="this_node">, #<Nokogiri::XML::Attr:0x8086047c name="href" value="http://example.com">]>]>]>]>
irb(main):005:0>
irb(main):006:0* doc.at_css('a.this_node')['href']
=> "http://example.com"
irb(main):007:0>