【发布时间】:2020-07-09 17:20:57
【问题描述】:
我想返回一组标签中包含选定文本的第一个标签的位置编号。
我想设置一个 4 列的 google 表格:
2:分类页面上的产品数量:
=IMPORTXML($B4;"count(//p[@data-test-id='productTitle'])")
3 : 标题包含“Legrand”或“Céliane with Netatmo”的产品数量:
=IMPORTXML($B4;"count(//p[@data-test-id='productTitle'][contains(.,'Céliane with Netatmo')or contains(.,'Legrand')])")
以上公式都不错。我在第四个上遇到了困难:
4 :标题包含“Legrand”或“Céliane with Netatmo”的第一个产品的位置。
例如,第 2 列返回 24(产品),第 3 列返回 12(产品)。 如果第一个产品是带有“Legrand”或“Céliane with Netatmo”的产品,我希望第 4 列返回 1。如果它位于第 4 位,我希望它返回 4。
我试过了
=IMPORTXML($B4;"//div//p[@data-test-id='productTitle'][.='Legrand']/preceding-subling::*)+1")
但似乎我没有“//div//p”的良好顺序。我敢打赌这与 subling 元素有关,在 "/" 之前,我一定没有正确选择的标签。
【问题讨论】:
标签: xpath web-scraping google-sheets google-sheets-importxml