Как найти определенное значение элемента с помощью xpath? - PullRequest
0 голосов
/ 05 июня 2018

Я написал скрипт в python в сочетании с библиотекой lxml, используя xpath для анализа стоимости определенной квартиры с веб-страницы.Имя этой квартиры, видимой на этом сайте, - Eden Tolly Cascades, а ее значение - 15.92 to 36.28 Lac.Как я могу разобрать значение, упомянув имя квартиры в моем xpath?

Я пробовал, как показано ниже, и это работает без проблем.Однако нет ли более чистого подхода для достижения того же самого?

import requests
from lxml.html import fromstring

url = "https://www.99acres.com/ppc-2515-residential-apartment-mailer"

res = requests.get(url)
tree = fromstring(res.text)
item = tree.xpath("//h1[contains(.,'Eden Tolly')]/../../../following::div//span/strong/text()")[0]
print(item)

Это один из таких контейнеров:

<div class="pro-text">
    <div class="product-text-box">
        <div class="product-heading">
            <span><img src="https://newprojects.99acres.com/projects/eden_group/eden_tolly_cascades/ln9rkpsb.jpg">
                <h1 class="font-size15">Eden Tolly Cascades<p>Kabardanga</p></h1>
            </span> 
        </div>
    </div>
    <div class="product-text-box">
    <ul class="product-lrg-box">
        <li> <span><strong><span class="rupee-font">₹ &nbsp;</span>15.92 to 36.28 Lac</strong></span></li>
        <li><strong>549-1251 SQFT</strong></li>

        <li><strong>1-3 BHK</strong></li>
        <li style="width:20% !important;"><strong>New Launch</strong></li>
    </ul>
    <div id="tabs" class="tab-link tabs-menu tabs-menu-new">
        <ul>
            <li><a href="#304355broch">e-Brochure</a></li>
            <li><a href="#304355amn">Amenities</a></li>
            <!--  <li style="width:20% !important;"><a href="#304355floor">Floor Plan</a></li>-->
            <li style="width:20% !important;"><a href="#304355dir">Directions</a></li>
        </ul>
    </div>
    <span class="enquire-new-bt" id="304355-583061,151100-enquire-new-bt" data-val="3"> <a href="javascript:void(0)">I am Interested</a> </span> </div>
</div>

1 Ответ

0 голосов
/ 06 июня 2018

Попробуйте ниже XPath

//div[contains(.//h1, 'Eden Tolly')]/following-sibling::div//span/strong/text()
...