私は、Adidas.com上の任意の靴へのリンクを生成するボットを作成して、靴のモデル番号とユーザーの靴サイズを考慮して靴の利用可能なサイズを確認します。JSoupを使用したWebスクレイピングドロップダウンリスト
私は靴の利用可能なサイズを取得するために、私はJSの拭き取りにJSoupを使用しています。アディダスは、ユーザーが任意の靴に適したサイズを選択するためのドロップダウンリストを実装しています。私は、ドロップダウンを検査すると、ウェブページはかなりの数のネストされた要素を持っているが、私は使用可能なサイズの実際のリストは、下のコードのこのブロックと判断した:さて、このリストを与え、私はこれらを取得する
<select class="select___Kst06">
<option value="defaultOption" disabled="" hidden=""></option>
<option value="0">5</option>
<option value="1">6</option>
<option value="2">7</option>
<option value="3">7.5</option>
<option value="4">8</option>
<option value="5">8.5</option>
<option value="6">9</option>
<option value="7">9.5</option>
<option value="8">10</option>
<option value="9">10.5</option>
<option value="10">11</option>
<option value="11">11.5</option>
<option value="12">12</option>
<option value="13">12.5</option>
<option value="14">13</option>
<option value="15">14</option>
</select>
値を返し、それらを私のコードに返します。私はこの方法を実行したとき、私は[]
が返される空の配列を取得し、しかし
public static String[] checkSizes(String addr) {
String[] sizesAvailable = null;
try {
Document document = Jsoup.connect(addr).get();
Elements sizes = document.select(".select___Kst06");
sizesAvailable = new String[sizes.size()];
for (int i = 0; i < sizes.size(); i++) {
sizesAvailable[i] = sizes.get(i).text();
}
} catch (IOException e) {
e.printStackTrace();
}
return sizesAvailable;
}
:私はちょうどそれを行うには、ここで、このメソッドを持っています。私は無数のセレクタ構文の組み合わせを試しましたが、無駄です。 Methinksそれは非常に難しいはずはありませんが、私はその明白なクエリを見逃しています。この場合、私は間違って何をしていますか?
私はJSoupを初めて使ったので、私に同行してください。そして、もし誰かがそれを自分自身で検査したいのであれば、hereは 'test'靴へのリンクです。サイトのすべての靴には同じテンプレートがあります。事前にあなたの助けをありがとう。
私はまだ空の '[]'リストを取得しています。 :( –
'document'に正しいHTMLコードが含まれていることを確信していますか?どのURLを扱っているのかわからないので、私は静的なHTMLを使ってテストしています - ' String html = "
私は確信していません。[page](https://www.adidas.com)です。 /us/af-1.4-primeknit-shoes/BY9395.html?forceSelSize=BY9395_710)どの製品ページも同じテンプレートを持つので、私はそれをテストしています。ページを調べると、jSoupを使用して正確な私が必要とするすべてのデータを持ったクラスですが、外側の要素もすべて取得する必要がありますか? –