计算没有属性的html元素的XPath

时间:2014-08-28 13:08:57

标签: xpath

<div class="search-page-right-pannel">

<div class="search-page-heading-red" style="font-weight:400; margin-bottom:7px; margin-top:-4px; text-align:left">

Big Bazaar (Future Group) <b>(Future)</b> </div>
    <img src="images/address-icon.png" alt="" />&nbsp; Knowledge House, Shyam Nagar Off Jogeshwari-Vikhroli Link Road                                 Jogeshwari (East)<br>
                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mumbai                    Maharashtra , 400060    <div class="detail-line"><img src="images/call.png" alt="" /> (022) 30841300  66442200  61190000<!--<span onmouseover="TagToTip('Span2')" onmouseout="UnTip()"><img src="images/call.png" alt="" /> <u style="color: #3079af">click to view number</u></span>-->
  <img src="images/website-icon.png" alt="" style="margin-left:80px;" /> <a href="http://www.bigbazaar.com" target="_blank" class="pglink">www.bigbazaar.com</a> <span style="float:right"> </span>
 </div>

我想要

的XPath
  

知识屋,Shyam Nagar Off Jogeshwari-Vikhroli Link Road Jogeshwari(东)         孟买马哈拉施特拉邦,400060

并且还将phone_no和网站的元素分开

  

(022)30841300 66442200 61190000 www.bigbazaar.com

1 个答案:

答案 0 :(得分:1)

您可以尝试使用XPath表达式:

//div[@class='search-page-right-pannel']/text()[3]
  • 单词pannel看起来像是一个拼写错误,但我不知道它是否实际拼写在您正在使用的网页上。
  • 这将为您提供指定div元素的第三个文本节点子节点。这可能是错误的数字,具体取决于空白处理。您可以尝试[1][2]而不是[3],但无论哪种方式,它都会变得脆弱。不太脆弱的是利用img元素:

//div[@class='search-page-right-pannel']/img[@src='images/address-icon.png']/
   following-sibling::text()[1]

同样,可以使用

选择电话号码
//div[@class='search-page-right-pannel']/img[@src='images/call.png']/
   following-sibling::text()[1]

和域名:

//div[@class='search-page-right-pannel']/a[@class='pglink']/text()

看看这些表达式是如何工作的。我宁愿帮你学习如何钓鱼而不仅仅是给你一条鱼。如果您有疑问,请告诉我。