質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

879閲覧

スクレイピングの結果が出力がされない

aassdd

総合スコア4

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2020/07/16 09:46

以下のサイト
https://shadowverse-portal.com/deckbuilder/create/8?hash=1.8.6RMga.6RMga.6RMga.6cmfA.6cmfA.6cmfA.6vovw.6vovw.6vovw.71TeA.71TeA.71TeA.6kOCI.6kOCI.6kOCI.6zemS.6zemS.6RKEK.6RKEK.6RKEK.6kRNQ.6kRNQ.6kRNQ.6zd2w.6zd2w.6zd2w.6RHYc.6RHYc.6RHYc.6s3fQ.6s3fQ.6s3fQ.61Q1A.61Q1A.6kT4y.6kT4y.6kT4y.6vvVy.6vvVy.6vvVy&lang=ja
<span class="el-card-list-info-name-text"></span>
の部分のテキストを全て抜き出すために以下のコードを作成したのですがエラーメッセージは出なかったものの出力はされませんでした。そこでコードが間違っているのかと思いurlとcssセレクタを他のサイト(yahooニュースのトピック一覧)に変えて試したところ問題なく出力されたため、かえって解決策が分からなくなってしまいました。どなたか解決策をご教授いただきますようよろしくお願いします。

ruby

1require "open-uri" 2 3require "nokogiri" 4 5url ="https://shadowverse-portal.com/deckbuilder/create/8?hash=1.8.6RMga.6RMga.6RMga.6cmfA.6cmfA.6cmfA.6vovw.6vovw.6vovw.71TeA.71TeA.71TeA.6kOCI.6kOCI.6kOCI.6zemS.6zemS.6RKEK.6RKEK.6RKEK.6kRNQ.6kRNQ.6kRNQ.6zd2w.6zd2w.6zd2w.6RHYc.6RHYc.6RHYc.6s3fQ.6s3fQ.6s3fQ.61Q1A.61Q1A.6kT4y.6kT4y.6kT4y.6vvVy.6vvVy.6vvVy&lang=ja" 6 7 8html = URI.open(url) do |page| 9 page.read 10end 11 12doc = Nokogiri::HTML.parse(html) 13 14puts doc.css("#deckbuilder > div > div.deckbuilder-deck > div > div.deckbuilder-deck-stickify > div.deckbuilder-deck-list > div.deckbuilder-deck-cards > ul > li:nth-child(1n) > div > p.el-card-list-info-name > span")

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

プログラムとしては間違ってなくて、単に、指定のCSSセレクタに該当するノードが無いだけでしょう。
puts htmlした結果をよく見ましょう。

あるいは、いきなり"#deckbuilder > div > ~~ > span"を指定せず、
"#deckbuilder"から指定を少しずつ増やしていくとか。最初からノードが無いかも知れませんが。

投稿2020/07/16 10:02

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aassdd

2020/07/16 10:29

回答ありがとうございます。 このcssセレクタはchromeでページを検証しスクレイピングしたい部分でセレクタコピーしたものをそのまま貼り付けたものですがそういう場合でもノードがないということが起こり得るのでしょうか。
otn

2020/07/16 11:22

ありますね。puts htmlを見ましょう。
aassdd

2020/07/16 12:49

確認したところノードが存在していませんでした。 回答ありがとうございました。
otn

2020/07/16 13:06

おそらくJavaScriptで追加されたノードなので、open-uriじゃなくて、ブラウザ+Seleniumでやりましょう。
aassdd

2020/07/16 13:43

ありがとうございます。詳しく調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問