【问题标题】:How to Get Crawl content in Crawljax如何在 Crawljax 中获取爬取内容
【发布时间】:2015-01-14 06:03:35
【问题描述】:

我已经使用 Crawljax 抓取动态网页。我可以获取当前的 id、status 和 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脚本网页内容..

【问题讨论】:

  • 如果你能得到DOM,你就能得到内容,对吧?是一样的。
  • 没有。我无法获取内容。它显示空值。

标签: java web-crawler


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    要获取网站内容,请使用以下函数:

    cc.getCurrentState().getDom()
    

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

    cc.getCurrentState().getDocument()
    

    返回Document DOM 节点。

    您可以通过以下方式检索页面内容:

    cc.getCurrentState().getDocument().getTextContent()

    编辑:这不起作用——在 Documents 上调用时,getTextContent 总是 returns null。)

    【讨论】:

    • 你能检查一下吗..它显示的是Null Value
    • then.如何获取文本值?
    猜你喜欢
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 2015-10-31
    相关资源
    最近更新 更多