2017-07-28 2 views
1

私はAndroidアプリプロジェクトのためにAmazonのデータを取り除くために過去数日間JSoupを使用していましたが、私はすべてのチュートリアルをJSoupのWebサイト、そしてStack Overflow自体に関する多くの質問があります。しかし、私が試したすべてにもかかわらず、私が費やしたすべての時間はimg要素からソース属性を抽出するためにこれを取得しようとしますが、何も動作していないようです。ウェブサイトからJSoupのいくつかの要素にネストされた画像ソースを掻き集める

HTMLコードをここにリストされて、私が抽出したいことは、「ストレッチ水平ダイナミック画像を」クラス名を持つimg要素からソース属性です:

<ul class="a-unordered-list a-nostyle a-horizontal list maintain-height"> 
<li class="image item itemNo0 selected maintain-height"><span class="a-list-item"> 
    <span class="a-declarative" data-action="main-image-click" data-main-image-click="{}"> 
     <div id="imgTagWrapperId" class="imgTagWrapper"> 
      <img alt="MSI R9 390 GAMING 8G Graphics Card" src="(source URL that I want to extract)" 

" data-old-hires="https://images-na.ssl-images-amazon.com/images/I/81RZgkZUJlL._SL1500_.jpg" class="a-dynamic-image a-stretch-horizontal" id="landingImage" data-a-dynamic-image="{&quot;https://images-na.ssl-images-amazon.com/images/I/81RZgkZUJlL._SX450_.jpg&quot;:[338,450],&quot;https://images-na.ssl-images-amazon.com/images/I/81RZgkZUJlL._SX425_.jpg&quot;:[319,425],&quot;https://images-na.ssl-images-amazon.com/images/I/81RZgkZUJlL._SX466_.jpg&quot;:[350,466],&quot;https://images-na.ssl-images-amazon.com/images/I/81RZgkZUJlL._SX355_.jpg&quot;:[266,355],&quot;https://images-na.ssl-images-amazon.com/images/I/81RZgkZUJlL._SX522_.jpg&quot;:[392,522]}" style="max-width:522px;max-height:392px;"> 
      </div> 
     </span> 
    </span></li> 
次のように

のAndroid Studioで私のコードは次のとおりです。確かに、私はまだJavaと特にJSoupと非常に経験の浅いていますので、

Document doc = Jsoup.connect(url).get(); 
Element link= doc.select("ul.a-unordered-list a-nostyle a-horizontal list maintain-height").select("span.a-list-item span.a-declarative").select("span.a-declarative") 
        .select("div.imgTagWrapper").select("img.a-dynamic-image a-stretch-horizontal").first(); 
String imageSRC = link.attr("src"); 

私はここに欠けている内容を正確に把握するのが大好きです。どんな助けでも大変感謝します。ありがとう!

答えて

2

これを試してください。

Element link= doc.select("ul.a-unordered-list.a-nostyle.a-horizontal.list.maintain-height") 
    .select("span.a-list-item span.a-declarative") 
    .select("span.a-declarative") 
    .select("div.imgTagWrapper") 
    .select("img.a-dynamic-image.a-stretch-horizontal").first(); 
String imageSRC = link.attr("src"); 

あなたは代わりにそんなに

.select("TAG.CLASS1 CLASS2 CLASS3") 
+0

感謝の

.select("TAG.CLASS1.CLASS2.CLASS3") 

で複数のクラスを選択する必要があります!これはうまくいきました。私は、スペースが異なるクラスであることを意味していたことを認識しませんでした。また、span.a-declarativeを2回書きましたが、おそらくタイプミスであり、それはまだ機能していたと私は理解しました。ありがとうございました! – coolyfrost

関連する問題