HtmlUnit - 无法从div获取锚点

时间:2014-03-11 06:40:04

标签: html xpath web-scraping href htmlunit

我定位的HTML网页的div如下所示:

<div class="white-row1">
  <div class="results">
    <div class="profile">
      <a href="hrefThatIWant.com" class>
        <img src = "http://imgsource.jpg" border="0" width="150" height="150 alt>
      </a>
    </div>
   </div>
</div>
<div class="white-row2">
// same content as the div above
</div>

我想废弃收集列表中每个div的href。

这是我目前的代码:

List<HtmlAnchor> profileDivLinks = (List)htmlPage.getByXPath("//div[@class='profile']//@href"); 
for(HtmlAnchor link:profileDivLinks)
{
    System.out.println(link.getHrefAttribute());
}

这是我收到的错误(在for语句的第一行出现):

Exception in thread "main" java.lang.ClassCastException: com.gargoylesoftware.htmlunit.html.DomAttr cannot be cast to com.gargoylesoftware.htmlunit.html.HtmlAnchor 

您认为这个问题是什么?

2 个答案:

答案 0 :(得分:1)

问题是你获得了一个属性,然后你将该属性转换为锚点。我想对代码进行最小更改的解决方案只是修改XPath以返回锚点:

htmlPage.getByXPath("//div[@class='profile']//a"); 

答案 1 :(得分:0)

//div[@class='profile']//data(@href)