LoginSignup
7
6

More than 5 years have passed since last update.

Rubyのmechanizeで見出し文にあたる最初のpタグだけを取得する方法

Last updated at Posted at 2015-05-16

疑問

スクレイピング用の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タグ=見出し文だけを取得できました。

7
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6