Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python xpath当brother不是元素时如何获取文本_Python_Xpath_Scrapy - Fatal编程技术网

Python xpath当brother不是元素时如何获取文本

Python xpath当brother不是元素时如何获取文本,python,xpath,scrapy,Python,Xpath,Scrapy,我以前有这个表格 <li> <span>name:</span> <p>Seca </p> </li> 一切都很顺利 现在我没有p标签。所以我有这个: <li> <span>name:</span> Seca </li> 姓名: 塞卡 我应该对我的代码做什么编辑才能获得seca现在请?现在,“seca”只是li元素的另一个子元素,因此是

我以前有这个表格

<li>
    <span>name:</span>
    <p>Seca </p>
</li>
一切都很顺利

现在我没有
p
标签。所以我有这个:

<li>
    <span>name:</span>
    Seca
</li>
  • 姓名: 塞卡
  • 我应该对我的代码做什么编辑才能获得
    seca
    现在请?

    现在,“seca”只是
    li
    元素的另一个子元素,因此是
    span
    元素的一个兄弟。使用

    //ul/li/span[normalize-space(text())='name:']/following-sibling::text()
    
    给你

    [EMPTY LINE]
    Seca
    [EMPTY LINE]
    
    您可能希望排除这些仅限空格的行:

    normalize-space(//ul/li/span[normalize-space(text())='name:']/following-sibling::text())
    
    结果将是

    Seca
    
    如果实际输入包含更多文本节点,请不要忘记将
    [1]
    添加到表达式中


    注意,如果实际上没有理由规范<代码> SUN 的文本内容,只考虑其直接子文本节点:

    ,表达式可能会容易得多。
    //ul/li[span='name:']/text()[2]
    
    //ul/li[span='name:']/text()[2]