2014-08-28 37 views
-2
<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的计算的XPath

知识大厦,希亚姆·格尔关Jogeshwari-Vikhroli连道Jogeshwari(东) 孟买马哈拉施特拉邦,400060

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

(022)308413 00 66442200 61190000 www.bigbazaar.com

+0

听起来像你根本不需要html元素的XPath;您需要某些文本节点(即HTML元素的子节点)的XPath。您尝试了哪些XPath表达式,结果如何? – LarsH 2014-08-28 15:54:16

回答

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() 

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