【发布时间】:2015-05-01 15:04:22
【问题描述】:
我正在使用 HtmlUnit 来抓取数据,并且我已经习惯了 XPath 的语法。 但是我遇到了问题。
我有一个需要在页面之间拉取的元素,有时它是“span”元素,有时它是“a”元素(链接)。原因很简单,有时我正在抓取的项目有一个链接,有时它只是纯文本(很明显)。 然而,相同的是一个名为“data-reactid”的属性,它总是有一个设定值,比如 99。 我一直在阅读和胡闹,并一直在尝试这样的事情:
HtmlElement element = (HtmlElement) myPage.getFirstByXPath("//@data-reactid='99'");
System.out.println(element.getTextContent());
我收到以下错误:
java.lang.ClassCastException: java.lang.Boolean cannot be cast to com.gargoylesoftware.htmlunit.html.HtmlElement
为什么 getFirstByXPath() 会返回一个布尔值,这超出了我的理解。
所以我的问题是,当我不知道元素是什么类型时,如何通过指定的属性和值访问元素?
谢谢!
【问题讨论】:
标签: java html xpath web-scraping htmlunit