Python Scrapy,包含文本,使用 xpath 排除文本

Python Scrapy, include text, exclude text using xpath

所以我现在正在使用 Scrapy,想抓取一个网站以获取特定信息。如果存在某些文本,我希望能够只抓取信息,但如果某些文本不存在,我也只希望抓取信息。

例如,我可能会寻找 apple、banana 或 pear,如果我找到其中一个词,我想抓取页面,但如果 peach 也在文本中,我不想抓取内容。我希望这是有道理的?

据我了解,我可以使用 xpath 创建这样的 or 语句:

//tbody[contains(text(), "apple")] | //tbody[contains(text(), "banana")] | //tbody[contains(text(), "pear")]

但是如果 Xpath 在其中找到桃子,我该如何告诉它不要抓取页面?

我也从页面中提取了一些其他元素,但我认为它们不相关(如果我错了请告诉我)

谢谢

使用not XPath函数如下:

//tbody[not(contains(text(), "peach"))]

您可以按如下方式组合两个表达式:

//tbody[contains(text(), "apple") and not(contains(text(), "peach"))]

这将 select table 个包含 apple 但不包含 pear 的主体。请注意,您可以使用句点字符 . 作为 text().

的替代字符