如何在Crawljax中获取爬网内容

时间:2015-01-14 06:03:36

标签: java web-crawler

我使用Crawljax抓取动态网页。我能够获取抓取当前ID,状态和dom。但我无法获得网站内容..任何人都帮助我?

CrawljaxConfigurationBuilder builder =
            CrawljaxConfiguration.builderFor("http://demo.crawljax.com/");
    builder.addPlugin(new OnNewStatePlugin() {



        @Override
        public String toString() {
            return "Our example plugin";
        }

                @Override
                public void onNewState(CrawlerContext cc, StateVertex sv) {

                    LOG.info("Found a new dom! Here it is:\n{}", cc.getBrowser().getStrippedDom());
                       String name = cc.getCurrentState().getName();
String url = cc.getBrowser().getCurrentUrl();
System.out.println(cc.getCurrentState().getDom());
System.out.println("New State: " + name + "; url: " + url);
                }
    });
    CrawljaxRunner crawljax = new CrawljaxRunner(builder.build());
    crawljax.call();

如何获取动态/ java脚本网页内容..

2 个答案:

答案 0 :(得分:1)

我们可以获得网站源代码 。cc.getBrowser()getStrippedDom());或cc.getCurrentState()。getDocument(); 这个编码是返回源代码(css / java脚本文件)..

不可能。因为它的测试工具。这个工具只检查Text是否可用,将临时数据分配给Fields。

答案 1 :(得分:-1)

要获取网站内容,请使用以下功能:

cc.getCurrentState().getDom()

此函数返回DOM节点,但实际上返回页面的HTML文本。如果你想要页面内容,这是正确的功能,但听起来它返回一个DOM节点,所以名称getDom是用词不当。要获得DOM节点,请使用:

cc.getCurrentState().getDocument()

返回Document DOM节点。

您可以使用以下内容检索页面内容:

<德尔> cc.getCurrentState()。getDocument()。getTextContent()

编辑:这不起作用 - getTextContent在文档上调用时总是returns null。)