【问题标题】:following siblings in xpath returns empty resultxpath 中的以下兄弟姐妹返回空结果
【发布时间】:2014-03-04 03:46:54
【问题描述】:

我有这个 html 节点

<li>
    <em>Description
    </em>
    <br>
    TEXT TEXT                
</li>

我要提取Text Text

我试过了:

 sel.xpath('//em[normalize-space(.) = "Description"]/following-sibling::*')

我得到了空结果。

为什么?

我需要检查描述,所以我希望你的答案不包括更改检查描述

【问题讨论】:

    标签: html xpath scrapy


    【解决方案1】:

    我自己找到了解决方案,它是

    '//li[contains(em,"Description")]/text()[last()]'
    

    【讨论】:

    【解决方案2】:

    这不是有效的 XML。 &lt;br&gt; 在哪里关闭?如果是&lt;br/&gt;,那么它将为空,因为下面的兄弟是&lt;br/&gt;

    【讨论】:

    • 这是我从网页上得到的 html。我不能改变它,即使我可以,我也不想。我想从网站上提取数据,注意修复他们的 html :)
    • 如果 HTML 不是格式良好的 XML,它将无法解析,您将无法使用 XPath。你将不得不使用别的东西。你确定不是
      而不是
    • 如果格式不正确,并且无法修复,可以先尝试使用JTidy将HTML转换为格式正确的XHTML。之后,您可以使用 XPath。
    • 是的
      你应该知道每个问题都有解决方案,所以请不要告诉it won't parse,因为它会被解析:P
    • 让我们等待不使用xhtml 的答案。我有很多页面,如果我为每个项目都覆盖了我的 html,我的系统就会出现性能问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    相关资源
    最近更新 更多