-1

我正在尝试使用 JSOUP 从该 URL 获取所有带有类的 div 标签。我想列出每种产品的所有名称和价格。具体来说,我正在寻找具有 class="item-name" 和 class="item-price" 的 div 标签。

public static void main(String[] args) throws IOException {

        Document doc = Jsoup.connect("http://www.games-workshop.com/gws/catalog/listProducts.jsp?catId=cat440176a").get();

        Elements content = doc.select("div[class]");

        for(Element src : content) {

                System.out.println(src.text());

        }

}

当我运行此代码时,它不会返回所有带有类属性的 div 标签,它只返回页面顶部的一些标签和页面底部的一些标签。我假设这与他们处理网页的方式有关,因为我得到了一些 div 标签。我希望有人能够解释为什么我只得到一些 div 标签。


编辑

好的,在查看了其他人的 html 页面不一致的其他文章后,我决定尝试一种新方法。在我看来,这与生成我正在寻找的 html 的脚本有关。目前我正在尝试让 htmlUnit 生成页面,然后我想使用 JSOUP 来解析它。

public static void main(String[] args) throws IOException {
                    WebClient webClient = new WebClient();
        webClient.setCssEnabled(true);
        webClient.setAppletEnabled(true);
        webClient.setJavaScriptEnabled(true);
        webClient.setTimeout(7000);
        WebRequest request = new WebRequest(new URL("http://www.games-workshop.com/gws/catalog/listProducts.jsp?catId=cat440176a"));
        Page page = webClient.getPage(request);
                    String webpage = page.getWebResponse().getContentAsString();

                    System.out.println(webpage);
}

}

当我运行这段代码时,我得到了很多红色错误。以下是错误http://pastebin.com/LHr7R7U1。我希望有人可以帮助我解决问题。

4

2 回答 2

0

我发现在我的示例中没有呈现 javascript。我还没有找到渲染javascript的方法。

于 2012-09-22T04:56:15.523 回答
-1

尝试WebClient webClient = new WebClient(BrowserVersion.FIREFOX_10);

于 2012-11-16T16:05:20.197 回答