3

私は jsoup を使用して、次の Web ページから画像を取得してい ますprod.jump?ppId=180d97e&catId=cat100240089&selectedLotId=0514592&selectedSKUId=05145920000&navState=navState-:catId-cat100240089:subcatId-:subcatZone-false:N-100240089%20158:Ns-:Naott-0:1ps-:Naott-0:1ps -:Nf-:action-guided%20navigation&catId=SearchResults } 私のコードは

String url = "http://www.jcpenney.com/dotcom/jewelry-watches/fine-jewelry/mens-jewelry/bulova%25c2%25ae-mens-stainless-steel-watch/prod.jump?ppId=180d97e&catId=cat100240089&selectedLotId=0514592&selectedSKUId=05145920000&navState=navState-:catId-cat100240089:subcatId-:subcatZone-false:N-100240089%20158:Ns-:Nao-0:ps-24:pn-1:Ntt-:Nf-:action-guided%20navigation&catId=SearchResults";


           Document doc= Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2").get();


          String imgUrl=doc.select("#mapImageSjElement4 img").attr("abs:src"); 

それは私に画像のURLを返すはずですが、私は画像のURLを取得していません。ウェブページの左側にあるメインの商品画像を取得したい。

4

1 に答える 1

1

ドキュメント全体を印刷すると、その画像や Web サイト内のその他の多くの要素が、ページ全体に散らばっている JavaScript スクリプトによって読み込まれていることがわかります。そのイメージを取得するには、次の 2 つから選択する必要があります。

  1. Selenium、Webdriver、HTTPClient などの GUI レス Web ブラウザを使用します。ページが完全に読み込まれると、そのhtmlコンテンツを取得します
  2. コードを調べて JavaScript をエミュレートし、必要なデータを取得します

これは、プロジェクトに余分なライブラリを追加せずに、私が言及した 2 番目のアプローチを使用する方法です。

//Let's say you have the right script in a String
//variable named javascript.
String[] html = javascript.split("\n");

String imgUrl = "";
for(String line : html) {
    if (line.contains("imgUrl variable name here")) {
        imgUrl = line;
        break;
    }
}

//Now that you have what you want in a variable
//just split / substring it, untill you narrowed
//it down to what you want.
于 2012-07-30T18:38:27.833 に答える