XPATH - 使用不同的缩进(python)提取两个位置之间的内容

时间:2015-06-03 01:22:24

标签: python html xpath

我试图通过网址从HTML文件中获取一些数据。这是一个例子:

<html>
    ...
    <div class="start">

        <!-- Everything from here.. -->
        <p></p>
        <p><a href=''></a>
        <span></span
        <br>
        <!-- ..to here -->

        <div class="end">
            ...
        </div>
        ...
        ...
    </div>
    ...
</html>

我正在尝试直接在div class="start"下的数据,但我不知道如何,因为div几乎包含整个页面。我所知道的是,div class="end"正好在我想要的数据之后。请记住,我并不只想要介于两者之间的文本,而是需要不同的元素,在本例中我是<p> & <span> & <a>。另请注意,元素类型可能与上面HTML中显示的内容不同。

谷歌给了我不同类型的这个(没有运气): '//*[preceding-sibling::div[@class="start"] and following-sibling::div[@class="end"]]'

1 个答案:

答案 0 :(得分:0)

你接近谷歌搜索。看起来像你想要的是

//div[@class="start"]/*[following-sibling::div[@class="end"]]

由于<div class="start">是您要选择的数据的(不是兄弟),因此请在XPath中使用div[@class="start"]/*,而不是*[preceding-sibling::div[@class="start"]]