我在将htmlunit (htmlunit.sf.net)导入groovy脚本时遇到了问题。
我目前只是使用web上的示例脚本,它给了我无法解析类com.gargoylesoftware.htmlunit.WebClient的
剧本是:
import com.gargoylesoftware.htmlunit.WebClient
client = new WebClient()
html = client.getPage('http://www.msnbc.msn.com/')
println page.anchors.collect{ it.hrefAttribute }.sort().unique().join('\n')我从网站下载了源代码,并将com文件夹(及其所有内容)放在脚本所在的位置。
有人知道我遇到了什么问题吗?我不太清楚它为什么不进口它
发布于 2010-10-27 08:13:16
您可以在脚本运行时使用Grape为您获取依赖关系。最简单的方法是向import语句添加一个@Grab注释。
如下所示:
@Grab('net.sourceforge.htmlunit:htmlunit:2.7')
import com.gargoylesoftware.htmlunit.WebClient
client = new WebClient()
// Added as HtmlUnit had problems with the JavaScript
client.javaScriptEnabled = false
html = client.getPage('http://www.msnbc.msn.com/')
println page.anchors.collect{ it.hrefAttribute }.sort().unique().join('\n')只有一个问题。对于HtmlUnit来说,这个页面似乎有点太难理解了。当我运行代码时,每次都会得到OutOfMemoryException。我建议以正常的方式下载html,然后使用类似于NekoHtml或TagSoup的方法将html解析成XML并以这种方式处理。
这个例子使用TagSoup在Groovy:http://blog.foosion.org/2008/06/09/parse-html-the-groovy-way/中使用html作为xml。
发布于 2010-10-27 01:47:42
您只需要下载zip文件,解压缩jar文件,并在编译时将它们放在类路径上.你不需要消息来源
http://sourceforge.net/projects/htmlunit/files/htmlunit/2.8/htmlunit-2.8.zip/download
https://stackoverflow.com/questions/4029270
复制相似问题