• ベストアンサー

動的サイトのスクレイピング

スクレイピングは通常、対象サイトのHTMLを保存、パースしてサイトのページ構造を取得しますが、JSで動的に生成された後のサイトのページ構造は取得できますか?取得できる場合、参考サイトを教えてください。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

>JSで動的に生成された後のサイトのページ構造は取得できますか? 出来ません

toyoshima72
質問者

お礼

回答ありがとうございます。

関連するQ&A

  • サイトのVBAでのスクレイピングについて

    下記サイトを「VBA」でスクレイピングして、表示される動画の「タイトル一覧」を作成したいです。 ただ「Javascript」?で作成されているようで、表示されてる{内容}と{HTML}が一致せず、タイトルを取得できません。 しばらく前までは、単純に取得できてましたが、最近サイトの表示の仕方が変わってしまいました。 色々調べてやってみましたがダメです。 どなたか詳しい方、ご教示願います。 https://tver.jp/search

  • 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データ取得だけでもまず理解してからということで質問をしています。)

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

    動的なページのスクレイピング まず下記の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の仕様ではないのか、はたまたコードがよくないのか… 教えてください。

  • visualC#でのスクレイピング方法

    こんばんは、いつもお世話になっております。 会社にてvisualC#による情報処理を請け負うようになりました。 C#はあまり扱ったことがないのですが、早急に覚えなければならないため、 皆様のお知恵をいただきたく投稿させていただきました。 webサイトなどの情報を取得し、適正な値を表示するアプリケーションを作成する業務なので、 とりあえずオークションサイトなどの落札価格などを取得し、平均価格をだすようなソフトの工程を勉強したいと思っています。 プログラムに疎いため、的確な質問になっていないかもしれませんが、 スクレイピングなどの知識が必要だといわれました。 試験が9月と12月なのでそれまでにと思っています。 何か詳しい参考書や参考になるサイト、またはアプリケーションのサンプル等ありませんでしょうか? 宜しくお願いいたします!

  • 完全なるサイトのページのサイトデータを取得したい

    IEで完全な保存を選ぶと、htmlファイルとcssファイルがゲットできます。 どうもjsファイルが保存されてないようで、うまくPC上に落としたデータでは表示されません。 完全にサイトのページのサイトデータを取得するにはどうしたらいいですか?

  • PHPで一度に複数ページのスクレイピングをしたいのですが、リクエストの

    PHPで一度に複数ページのスクレイピングをしたいのですが、リクエストの仕方がよく分かりません。 初心者的な質問で恐縮ですが 例えば、http://hoge.com というサイトの子ページが http://hoge.com/page_1.html という形式だったとして $url = 'http://hoge.com/page_\d+.html'; このような感じで書いてみましたが、「ページが存在しません」というレスポンスが返ってきてしまいます。 このような場合に子ページの情報まで取得するにはどのようにすれば良いのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • サイトを丸ごとダウンロードできるダウンローダーを探しています。

    やりたいことは次のようなことです。 サイトのトップページを与えると、リンクをたどってそのサイト内のファイル、画像、スタイルシート、flash、jsなど全てをディレクトリ構造ごと保存したいです。 いままでIrvineを使用していたのですが、(たとえば)cssで背景に設定された画像が取得できないので、別のソフトを探しています。。 特に、スタイルシートで背景に設定された画像の取得をできるものがあれば教えてください

  • JSON をスクレイピングするときに

    参考アドレス http://api.ce.nicovideo.jp/liveapi/v1/video.info?__format=json&v=lv262629172 http://api.ce.nicovideo.jp/liveapi/v1/video.info?__format=json&v=lv262502077 http://api.ce.nicovideo.jp/liveapi/v1/video.info?__format=json&v=lv260993313 スクレイピングでタグを取得するときに category は必須で、locked と free が両方あったり、片方無かったり、両方無かったりする場合にすべてのタグをうまく取得するにはどのようなコードを書けばよいですか。

    • ベストアンサー
    • PHP
  • PHPスクレイピングが上手くいきません

    PHP Simple HTML DOM Parser を使って、スクレイピングをやってみようと 試行錯誤している最中なのですが、上手く出来なくて困っています。 具体的に分からないのは、以下の点です。 -------------------------------------------------------------------- $html = file_get_html('http://...'); foreach($html->find('ここの指定方法が分かりません') as $item); echo $item->plaintext; -------------------------------------------------------------------- こういった場合の文字列の指定方法は、 何をどう勉強すれば理解出来るようになるのでしょうか。 具体的に教えて頂けると助かります。 また、http://www.iimy.co.jp/item/p-33969.htmlに記載されている、 「1口以上の価格」の数値をこの方法で表示させたい場合(単位の"円"を除く)、 どのような指定方法になりますか? 「class="infoBoxContents"」を含めれば指定しやすそうだと考えて、 foreach($html->find('.infoBoxContents') as $item); echo $item->plaintext; と記述して、ひとまずこのclassを全て表示させようとしたのですが、 表示されたのは「ポイント 0 ポイント」だけでした。 参考にしたのは以下サイトです。 [PHP Simple HTML DOM Parserの使用方法] http://www.crystal-creation.com/web-appli/technical-information/programming/php/library/simplehtmldom/manual.htm

    • ベストアンサー
    • PHP
  • GASでのWEBスクレイピング

    業務効率化のため、以下の記事を参考に GASでのWEBスクレイピングを試してみましたが POSTのUrlFetchApp.fetchでエラーとなってしまいます。 ◯参考記事 http://katsulog.tech/get-the-source-after-logging-in-to-the-site-when-scraping-with-googlespreadsheet/ ◯エラー内容 https://www.fc-hikaku.net/client/sessions のリクエストに失敗しました(エラー: 422) ◯実施したいサイト(ログインページ) https://www.fc-hikaku.net/client そもそもログインができていないと思われるのですが GASにおいてエラーの切り分けなどの仕方もわからず 詳しい方にご助力いただきたいです。 参考記事内のサンプルは正常に動作しております。 宜しくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう