疑問
スクレイピング用のGem「mechanize」を使うときに、searchメソッドを使って取得したHTMLの中から要素を指定すると思うのですが、HTMLの構造が単純ならそりゃいいですよ。
オブジェクト.search('セレクタ')
にすればいいですから。
例えば、H1タグってだいたい1ページに1つしかないから、
オブジェクト.search('h1')
で取得できる。
でも、見出し文だけ取りたい時ってあるとおもうんですよ。
そのときに、HTMLが
<div class="contents">
<p>見出し文</p>
<p>その他の文</p>
<p>その他の文</p>
・・・
</div>
みたいになってることがある。
これで、
オブジェクト.search('.contents p')
みたいにすると、div class="contents"内のすべてのpタグを取得してしまう。。
解決
そんなときに、最初のpタグだけを取得する方法を学びましたわ。
オブジェクト.search('.contents p')[0]
これで最初のpタグ=見出し文だけを取得できました。