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()
.
的替代字符
所以我现在正在使用 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()
.