【Nokogiri】スクレイピングして複数ある要素の最初の1つを取得したい
状況
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_css
とcss
はcssセレクタで指定した要素を取得するメソッドです。
at_css
at_css
は複数ある要素のうち、最初の要素を取得してくれます。
指定の要素がない場合はnil
を返します。
css
css
は指定した要素を配列型式で全て取得してくれます。
指定の要素がない場合は空の配列を返します。
参考
Author And Source
この問題について(【Nokogiri】スクレイピングして複数ある要素の最初の1つを取得したい), 我々は、より多くの情報をここで見つけました https://qiita.com/maru_katy/items/320b1518588f874511fb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .