htmlcleaner爬取页面报contains未定义

htmlcleaner用xpath中查找node,若xpath调用contains函数会报:“org.htmlcleaner.XPatherException: Unknown function contains”。

htmlcleaner构建的Rootnode不能直接调用contains函数需要进行如下转换:

lazy val htmlCleaner = new HtmlCleaner
lazy val ISSNXPath = "//div[@class='bdy4']//b[contains(text(), '国际刊号')]"
def extract(path: String) = {
val root = htmlCleaner.clean(new File(path))
val doc = new DomSerializer(new CleanerProperties).createDOM(root)
val xpath = javax.xml.xpath.XPathFactory.newInstance.newXPath
val value = xpath.evaluate(ISSNXPath, doc, javax.xml.xpath.XPathConstants.NODE)
println(value)
val next = value.asInstanceOf[org.w3c.dom.Node].getNextSibling
println(next.getTextContent)
}
如上scala code所示:将htmlCleaner创建的根节点转为标准w3c节点,构建标准w3c XPath,进行查询即可。

对非Node后text类型文本的获取,可通过getNextSibling获得。
来自:[url]http://www.imilo.cn/findblog/28[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值