Nokogiriスクレイピングがうまくできない。
Nokogiriスクレイピングがうまくできない。
RubyのNokogiriを利用して、下記サイトのデータを整理するためにスクレイピングをしようと思っています。
https://sv.j-cg.com/compe/view/entrylist/1274
具体的には、サイト中部の「登録デッキ」の一覧にある使用クラスのデータをまとめるプログラムを組もうと思っています(添付画像参照)。
XPathのサイトを参考にしつつ、試しにこの使用クラスの画像データをテキストで出力するため以下のコードを組んで実行しました。
require 'nokogiri'
require 'open-uri'
url = 'https://sv.j-cg.com/compe/view/entrylist/1274'
charset = nil
html = open(url) do |f|
charset = f.charset
f.read
end
doc = Nokogiri::HTML.parse(html, nil, charset)
p doc.xpath('//img[contains(@src,"clans")]')
ですが、 [] と表示されるだけで何も取得できません。
containsの引数を(取得対象のimg要素内の)どの値に変えて試しても、色んな表示が出はするのですが肝心の画像URLの部分が取得できません。
(ページのソースコードを見た所、使用クラスの判別が画像URLでしか出来ないため、URLをまず取得しないことには目的を達成できないだろう、という前提で話しています。)
私の推測では、どうやらURL部分だけjsonファイルらしい(他者には見られない)外部のファイルから引っ張ってきているため、プログラムから読み取ろうとしてもうまくURLを引用できないのだと思ってます。
ですが、ブラウザ上の検証ツールではURLが表示されるのにプログラムでは正しく読み込めないのが疑問です。
何にせよ、うまく使用リーダーを整理する方法があったら教えていただきたいと思います。
(ちなみにスクレイピングで画像URL等を取得した後のうまい整理方法も現段階ではよくわかっていないですが、とりあえずこのURLデータ取得だけでもまず理解してからということで質問をしています。)