この動画を見ながらスクレイピングをやっていました。
動画内にもあるように
このサイトのタイトル部分の『 comments 』というテキストを取得したい際に、
require "open-uri" require "nokogiri" url = "https://news.ycombinator.com/" user_agent = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36' charset = nil html = open(url, "User-Agent" => user_agent) do |f| charset = f.charset f.read end doc = Nokogiri::HTML.parse(html, nil, charset) p doc.css("#hnmain > tbody > tr:nth-child(1) > td > table > tbody > tr > td:nth-child(2) > span > a:nth-child(3)")
という指定の仕方では[]が帰ってきてしまうのはなぜでしょう?
デベロッパーツールの検証を右クリックから、そのままコピーしたものなのですが。。。
最後の部分を
p doc.at_css("a:nth-child(3)")
とするとしっかり値が帰ってきます。
cssに続く()の中身の記法の記法のルールがいまいちわかりません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/30 12:23
2017/09/30 14:46
2017/10/01 10:07
2017/10/01 13:23