JSOUP只返回一些div标签

时间:2012-09-05 02:10:39

标签: java html parsing jsoup htmlunit

我正在尝试使用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());

        }

}

当我运行此代码时,它不返回带有class属性的所有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。我希望有人可以帮我解决问题。

2 个答案:

答案 0 :(得分:0)

我发现javascript它没有在我的例子中呈现。我还没有找到一种渲染javascript的方法。

答案 1 :(得分:-1)

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