1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Nokogiri】スクレイピングして複数ある要素の最初の1つを取得したい

Posted at

状況

Nokogiriでスクレピングしてogp情報を取得したところ、
対象のサイトのog:imageが複数あったため、
結果が複数URLを連結した文字列となってしまった。
(連結した文字列になったのは私のせいです...)
一つ目のURLだけ欲しいのに!!
という時です。

結論

at_cssを使う。です。

html = open('nokogiri_practice.html').read
doc = Nokogiri::HTML.parse(html)

doc.at_css('//meta[property="og:image"]/@content')

at_css, css

at_csscssはcssセレクタで指定した要素を取得するメソッドです。

at_css

at_cssは複数ある要素のうち、最初の要素を取得してくれます。
指定の要素がない場合はnilを返します。

css

cssは指定した要素を配列型式で全て取得してくれます。
指定の要素がない場合は空の配列を返します。

参考

RubyでWebスクレイピング #3 Nokogiriを使いこなす

1
0
1

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?