2015-06-07 10 views
6

मैं निम्नलिखित साइट स्क्रैप करने का प्रयास कर रहा हूँ की href विशेषता का चयन करने के XPath का उपयोग करना: http://www.hudson211.org/zf/profile/service/id/659837निम्नलिखित-भाई

मैं href चयन करने के लिए कोशिश कर रहा हूँ "वेब पता" पाठ के बगल में। निम्नलिखित xpath चयनकर्ता टैग मैं के बाद कर रहा हूँ हो जाता है:

$x("//th[contains(text(), 'Web Address')]/following-sibling::td/a") 

रिटर्न

<a href="http://www.co.sullivan.ny.us">www.co.sullivan.ny.us</a> 

हालांकि, जब मैं विशेष रूप से @href का उपयोग कर href निकालने के लिए प्रयास करते हैं, वापसी मान एक खाली सरणी है:

$x("//th[contains(text(), 'Web Address')]/following-sibling::td/a/@href") 

रिटर्न []

यह पंक्ति के HTML मैं लो हूँ ठीक है:

<tr valign="top"> 
    <td class="profile_view_left"></td> 
    <th align="left" class="profile_view_center">Web Address</th> 
    <td class="profile_view_right"> 
     <ahref="http://www.co.sullivan.ny.us">www.co.sullivan.ny.us</a>       </td> 
    <td></td> 
</tr> 

उत्तर

3

मुझे लगता है कि आप $x() फ़ंक्शन के कारण Google क्रोम कंसोल का उपयोग कर रहे हैं। आपका xpath जो @href विशेषता का चयन करता है, वास्तव में काम करता है, जैसा कि मैंने अपने क्रोम में परीक्षण किया था, केवल परिणाम को कंसोल में प्रदर्शित नहीं किया गया है जैसे कि जब आप कोई तत्व चुनते हैं- इस कारण से कि मुझे इस समय बिल्कुल यकीन नहीं है-

>var result = $x("//th[contains(text(), 'Web Address')]/following-sibling::td/a/@href") 
undefined 
>result[0].value 
"http://www.co.sullivan.ny.us" 

देखें कि सटीक उसी अभिव्यक्ति का उपयोग करके, परिवर्तनीय result में अपेक्षित यूआरएल मान शामिल है। यदि आपका इरादा बिना किसी प्रसंस्करण के कंसोल में एकल href मान प्रदर्शित करने के लिए है, तो यह होगा:

>$x("//th[contains(text(), 'Web Address')]/following-sibling::td/a/@href")[0].value 
"http://www.co.sullivan.ny.us" 
+1

धन्यवाद! मैं एक ही मुद्दे पर संघर्ष कर रहा था। मेरी समस्या थी '实体' से href निकालना था। हालांकि '// a [@name = "topic"]/@ href' का उपयोग करके कंसोल खाली सूची प्रदर्शित करता है। तब मैंने आपके दृष्टिकोण का उपयोग किया और इसे महसूस किया ** वास्तव में सही सूची ** लौटाता है। शायद क्रोम -_- – Skywalker326

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^