こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

動的なページのスクレイピング

動的なページのスクレイピング

まず下記のurl御覧ください。

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q131988243...

これで「静的なページの」スクレイピングできるようになったはいいのですが、問題はここからです。
https://sv.j-cg.com/compe/view/entrylist/1489
↑このような、「ある程度スクロールすると追加でコンテンツが読み込まれるページ」については、正しくスクレイピングできませんでした。

「JavaScriptを実行させて、変化後の要素を取得する」ためにヘッドレスブラウザ(phantomjs)を使っているはずなのに、これは腑に落ちなさすぎるんですが。。

ググったところ、やっぱり「phantomjsを使う」のは正しい解決法のようなんですが、
(これとか→https://ja.stackoverflow.com/questions/19681/nokogiri%E3%81%A7%E5%8...)
やっぱり追加後のDOM?については解析できませんでした。

JCGのサイトについてはスクロール時に読み込まれるのはjavascriptの仕様ではないのか、はたまたコードがよくないのか…

教えてください。

投稿日時 - 2019-03-08 03:28:52

QNo.9594722

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

実ブラウザ上でスクロールしないと読み込まれないなら
ヘッドレスブラウザ上でもスクロールしないと当然ダメです。
phantomjs scrolldown
くらいの検索語で調べればコードはすぐわかるでしょう。

投稿日時 - 2019-03-11 07:39:18

補足

rubyのcapybaraを通してphantomjsを動かしているんですが

session.visit "https://sv.j-cg.com/compe/view/entrylist/1489"
session.execute_script('window.scroll(0,1000);')



session.visit "https://sv.j-cg.com/compe/view/entrylist/1489"
execute_script("window.scrollBy(0, window.innerHeight);")

を使ってもスクロールされたデータが取れないので今回質問しました

調べてもrubyでの書き方はわかりません(こういうのhttps://stackoverflow.com/questions/33484890/how-to-access-elements-from-finite-scroll-with-capybara-poltergeist-and-railsを参
考にしても。)

正しい表記法を教えてください。

投稿日時 - 2019-03-11 19:16:08

お礼

あ、なんか調べたいページが出ちゃってますが…
スクレイピング対象は特に気にしないでいただけるとありがたいです

投稿日時 - 2019-03-11 19:17:21

あなたにオススメの質問