如何在Crawljax中获取爬网内容
我使用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脚本网页内容..
我们可以获得网站源代码cc.getBrowser()。getStrippedDom()); 或cc.getCurrentState()。getDocument(); 这个编码是返回源代码(css / java脚本文件)..
不可能。因为它的测试工具。这个工具只检查Text是否可用,将临时数据分配给Fields。
要获取网站内容,请使用以下function:
cc.getCurrentState().getDom()
此函数不返回DOM节点,而是实际返回页面的HTML文本。 如果你想要页面内容,这是正确的function,但听起来它返回一个DOM节点,所以名称getDom
是用词不当。 要获取DOM节点,请使用:
cc.getCurrentState().getDocument()
它返回Document
DOM节点。
您可以使用以下方式检索页面内容:
cc.getCurrentState()。getDocument()。getTextContent()
( 编辑 :这不起作用 – getTextContent
在Documents上调用时总是返回null 。)