问题描述
我正在尝试从网站上抓取文本。有时,文本是用项目符号写的,有时只是纯文本。
项目符号中的文本 (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()
我还尝试了后裔或自我,最后是一个 /text(),但都没有奏效。简单地说,我想提取所有文本,无论是项目符号还是纯文本。应该只添加 Pullet 点,也许带有“;”或“,”。
非常感谢任何帮助
谢谢
解决方法
您可以将 XPath 与组合条件结合使用
"/article/div[@class='border-bottom-grau'][1]/ul/li[1] | /article/div[@class='border-bottom-grau'][1]/p"
,
另一个答案中提到的联合运算符 |
是一个很好的解决方案。或者,根据您的输出需求,您可以尝试
/article/div[@class='border-bottom-grau'][1]//*[self::p or self::li]