3

我正在使用 jsoup 从闲置网页中检索图像 { 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-Ntt-2:2 -: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"); 

它应该返回我的图片网址,但我没有收到图片网址。有什么建议吗??????我想检索位于网页左侧的主要产品图像。

4

1 回答 1

1

如果您打印整个文档,您会看到该图像以及网站内的更多内容是由散布在页面上的 javascript 脚本加载的。为了获得该图像,您必须在 2 之间进行选择:

  1. 使用无 GUI 的网络浏览器,如 Selenium、Webdriver、HTTPClient;并在页面完全加载后,获取它的 html 内容
  2. 通过研究它的代码来模拟 javascript,并检索你想要的数据

这将是一种使用我提到的第二种方法而不向您的项目添加任何额外库的方法:

//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 回答