我使用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脚本网页内容..
答案 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。)