Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未解析jsoup映像_Java_Jsoup - Fatal编程技术网

Java 未解析jsoup映像

Java 未解析jsoup映像,java,jsoup,Java,Jsoup,我正在使用jsoup从休闲网页中检索图像 { } 我的代码是 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&selectedSKUI

我正在使用jsoup从休闲网页中检索图像 { } 我的代码是

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。有什么建议吗?????
我想检索网页左侧的主要产品图像。

如果您打印整个文档,您会看到该图像以及网站中的更多图像由分散在页面上的javascript脚本加载。为了获得该图像,您必须在以下两个选项中进行选择:

  • 使用诸如Selenium、Webdriver、HTTPClient等简单的web浏览器;当页面满负荷时,获取它的html内容
  • 通过研究javascript的代码来模拟它,并检索所需的数据
  • 这将是一种使用我提到的第二种方法的方法,而无需向项目中添加任何额外的LIB:

    //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.
    

    我正在打印我检索到的html,实际上图像在一个div标记中,而div并没有被提取到html中,jsoup向我返回了如何检索缺失内容的任何想法。我做过不同的事情,比如添加cookie,也使用了UserAgent,但都是徒劳的。使用Josup,您必须查看所有脚本并查看它是如何加载的。如果有可能是Jquery直接从数据库中获取数据,那么Jsoup就不会这样做。我认为image src存储在一个javascript变量中,我可以访问脚本标记,但我可以使用Jsoup获取存储在该脚本内部变量中的值吗??????如果是,那么如何?Jsoup将无助于从javascript中获取一些东西。您必须使用字符串函数。。我会编辑我的答案,这样我就可以模拟一种方法来做。