0

質問の前に謝罪をしたいと思います-これにより、これは2つの部分からなる質問になります....二重の謝罪です。私はJSoupに(再び)繰り返し質問し、まだ十分に学んでいないことに対する最初の謝罪に苦労しています-だから、これを試すたびにDOMを解読する方法を理解するのに役立つ何かを通常の検索を超えて読むことを誰かが提案できますか?

あなたがまだ助けたいと思っているなら、今度は返されたドキュメントの中で私は持っています:

    <a href="/logitech-logitech-wireless-keyboard-k270-with-long-range-wireless-920-003051/info"><span id="priceProductQA1" class="productPrice">&#36;29.99</span></a>

href と price "29.99" を取得します。私はもう試した

   doc = Jsoup.connect(srchStr).get();
    for (Element choices : doc.select("a:has(.productPrice)")){
      absHref = choices.attr("abs:href"); 
      String pricetxt = choices.text();

役に立たない他の約10の方法。私にとってより良いアイデアはありますか?

4

1 に答える 1

0

別の解決策は次のとおりです。

for( Element element : doc.select("span.productPrice") ) // Select all 'span' tags with a 'productPrice' class and iterate over them
{
    final String price = element.text(); // save the price (= text of element)
    final String link = element.parent().absUrl("href"); // Get the 'a' tag (= parent of 'span' tag) and its absolute (!) URL

    // ... 
}

説明:

  1. span必要なものかどうかを簡単に判断できるため、タグを選択します (クラスはありますが、aありません) 。
  2. 1 から各要素を反復します。
  3. 要素の価格を取得する
  4. span必要な URL が含まれているため、タグの親を選択します
  5. 絶対URL を選択します。相対的なものが必要な場合は、attr("href")代わりに使用してください

ところで。このウェブサイトにそのような要素が 1 つしかないことを 100% 確信している場合は、for -Loop をに置き換えElement element = doc.select("span.productPrice").first();、その後に他の 2 行のコードを続けます。

于 2013-01-28T16:12:59.250 に答える