【问题标题】:Scrapy/XPath extract text from different tags (<p> OR <li>)Scrapy/XPath 从不同的标签(<p> OR <li>)中提取文本
【发布时间】:2021-06-23 07:51:48
【问题描述】:

我正在尝试从网站上抓取文本。有时,文本是用要点写的,有时只是纯文本。

项目符号中的文本 (XPath):/article/div[@class='border-bottom-grau'][1]/ul/li[1]

纯文本 (XPath) 中的文本:/article/div[@class='border-bottom-grau'][1]/p

我需要提取相应的文本(没有 div/ul/li/p 标签等)。这是我迄今为止尝试过的:

info_Aufgabengebiet = info.xpath(".//article/div[@class='border-bottom-grau'][1][descendant::text()]").extract()

输出:见图片Output

我还尝试了后裔或自我,最后是 /text(),但都没有成功。简单地说,我想提取所有文本,无论是项目符号还是纯文本。应该只添加 Pullet 点,可能带有“;”或“,”。

非常感谢任何帮助

谢谢

【问题讨论】:

    标签: python html xpath extract mixed


    【解决方案1】:

    您可以结合条件使用 XPath

    "/article/div[@class='border-bottom-grau'][1]/ul/li[1] | /article/div[@class='border-bottom-grau'][1]/p"
    

    【讨论】:

      【解决方案2】:

      另一个答案中提到的联合运算符| 是一个很好的解决方案。或者,根据您的输出需求,您可以尝试

      /article/div[@class='border-bottom-grau'][1]//*[self::p or self::li]

      【讨论】:

        猜你喜欢
        • 2021-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-16
        • 1970-01-01
        • 1970-01-01
        • 2021-01-09
        • 2016-01-10
        相关资源
        最近更新 更多