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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

1164閲覧

jsoupでHTMLタグの親要素・子要素を取り出す。

tattakahiiii

総合スコア27

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/02/11 01:58

java

1package tomo_scraping; 2 3import java.io.IOException; 4 5import org.jsoup.Jsoup; 6 7public class Scrapiing_tomo { 8 static String url = null; 9 static org.jsoup.nodes.Document document; 10 11 public static void main(String[] args) throws IOException { 12 url = "https://wowma.jp/category/510801/itemlist?spe_id=c_dw02&page=3&clk=1"; 13 document = Jsoup.connect(url).timeout(100000).get();// 14 System.out.println(document); 15 } 16}

出力結果

・・・・省略 <div class="mainArea"> <aside class="sidemenu ld" id="sideMenu"></aside> <div id="contents"> <!-- 検索結果 --> <div id="searchItemList"></div>  ←ここの中身にある<li>を取り出したい。 <!-- 検索結果0件 --> <div id="itemNotFound"></div> <div class="bottomContentsArea"> <!-- 最近見た商品 --> <div id="viewHistory" class="recentlyViewedCarousel"></div> <div class="divisionBorder"> <!--注目のキーワード--> <section class="divisionSection" id="featuredKeyWord"></section> <!-- オススメ特集 --> <section class="divisionSection js-was" data-id="1000000000000000002" data-components="textCardText1-02" data-text="おすすめ特集"></section> <section class="divisionSection clearfix"> </section> </div> <!-- TODO カテゴリから探す(elistのみ) --> <div id="searchByCategory"></div> </div> ・・・・省略

<取り出したい中身>
イメージ説明

Jsoupでスクレイピングをやろうとしております。
上記のプログラムを実行した結果、<div id="searchItemList"></div>で閉じられているため、
getElementsByTagを走らせても、取り出すことが出来ません。
HTMLの親要素・子要素全て取り出す方法をどなたかご教示頂けますでしょうか。

以上、よろしくお願い致します。

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

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

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

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

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

guest

回答2

0

ベストアンサー

そもそもサイトの構造に依るものですが、https://wowma.jp/category/510801/itemlist?spe_id=c_dw02&page=3&clk=1 をリクエストした結果のレスポンスは

html

1 <!-- 検索結果 --> 2 <div id="searchItemList"></div> 3 <!-- 検索結果0件 --> 4 <div id="itemNotFound"></div>

に必ずなっているので、JSoupとしては正しく動作しており、JSoupは動的に生成されたレスポンスを受け取るようにはできていません。

このページを表示した直後にJavaScriptで検索結果を生成しているサイトの作りですから、別途、JavaScriptで生成した結果のレスポンスを解析できるよう、ヘッドレスブラウザを用いてAjaxのレスポンス結果を受け取って、実行する手が良いでしょう。

動作検証はできていませんが、こちらが参考になるかもしれません。

https://qiita.com/kazuki-ma/items/93a317f19d6706d13858

また、類似した質問と解決結果もありますので、ご参考に。

https://teratail.com/questions/116788

投稿2019/02/11 16:16

A-pZ

総合スコア12011

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

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

tattakahiiii

2019/02/24 14:33

ご連絡差し上げるのが遅くなり大変申し訳ありません。 ヘッドレスブラウザ(Selenium)を使って、スクレイピングした結果出来ました。 ご回答ありがとうございました。
guest

0

getElementsByTag ではなく、getElementsById("searchItemList") を試してみましょう。

投稿2019/02/11 15:04

seastar3

総合スコア2285

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問