无法使用Jsoup从amazon或flipkart页面解析img和名称

Unable to parse img and name from amazon or flipkart pages using Jsoup

本文关键字:img flipkart Jsoup amazon      更新时间:2024-06-26

我无法使用Jsoup获取亚马逊或Flipkart上产品的主图像和名称。

我的java/jsoup代码是:

// For amazon
Connection connection = Jsoup.connect(url).timeout(5000).maxBodySize(1024*1024*10);
Document doc = connection.get();
Elements imgs = doc.select("img#landingImage");
Elements names = doc.select("span#productTitle");
// For flipkart
Connection connection = Jsoup.connect(url).timeout(5000).maxBodySize(1024*1024*10);
Document doc = connection.get();
Elements imgs = doc.select("h1.title");
Elements names = doc.select("img.productImage.current");

有人能指出我在这里遗漏了什么吗?

我使用过的网址是:

http://www.flipkart.com/lenovo-yoga-2-tablet-android-10-inch/p/itmeyqkznqa2zjf5?pid=TABEYQKXWAXMSGER&srno=b_2&offer=ExchangeOffer_LenovoYoga&ref=9ea008ab-ae95-4f52-8ef7-3ef1a54947ae

http://www.amazon.com/gp/product/B00LZGBU3Y/ref=s9_psimh_gw_p504_d0_i5?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=桌面1&pf_rd_r=0ESK1KNE31TBRVC8115Q&pf_rd_t=36701&pf_rd_p=1970559082&pf_rd_i=桌面

此外,如果可能的话,我想使用javascript和jquery在前端进行解析。

有没有同样的方法?

发现问题。

当我们使用java.net.URL的URL获取服务时,GAE中的Jsoup是有效的:

private String read(String url) throws IOException
{
    URL urlObj = new URL(url);
    BufferedReader reader = new BufferedReader(new InputStreamReader(urlObj .openStream()));
    String line;
    StringBuffer sbuf = new StringBuffer();
    while ((line = reader.readLine()) != null) {
        if (line.trim().length() > 0)
            sbuf.append(line).append("'n");
    }
    reader.close();
    return sbuf.toString();
}

然后你使用常规Jsoup作为:

String html = read(url);
Document doc = Jsoup.parse(html);

做到以上几点效果很好。