繁体   English   中英

使用XPath以下从XML获取元素

[英]Using XPath Following to get element from XML

我有一个类似以下的XML

<li class="expandSubItem">
    <span class="expandSubLink">Popular Neighborhoods</span>
    <ul class="secondSubNav" style="top:-0.125em;">
        <li class="subItem">
            <a class="subLink" href="/Hotels-g187147-zfn7236765-Paris_Ile_de_France-Hotels.html">Quartier Latin Hotels</a>
        </li>
    </ul>
</li>
<li class="expandSubItem">
    <span class="expandSubLink">Popular Paris Categories</span>
    <ul class="secondSubNav" style="top:-0.125em;">
        <li class="subItem">
            <a class="subLink" href="/HotelsList-Paris-Cheap-Hotels-zfp10420.html">Paris Cheap Hotels</a>
        </li>
    </ul>
</li>

我想获得“热门巴黎类别”下的所有链接。 我使用了这样的东西//li//a/@href/following::span[text()='Popular Singapore Categories'] ,但没有给出任何结果。 知道如何获得正确的结果吗? 这是我写的python代码的片段。

t_url = 'https://www.tripadvisor.com/Tourism-g187147-Paris_Ile_de_France-Vacations.html'
page = requests.get(t_url, timeout=30)
tree = html.fromstring(page.content)

links = tree.xpath('//li[span="Popular Paris Categories"]//a/@href')
print links

这是一种可能的方式:

//li[normalize-space(span)="Popular Paris Categories"]//a/@href

请注意normalize-space()如何用于从span内容中删除尾随空格。 这就是为什么我最初在评论中建议的XPath不适用于您的实际HTML。

或许这样的事情

//span[text()='Popular Paris Categories']/following-sibling::ul//a/@href

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM