如何停止在特定标签上?

时间:2019-04-18 13:25:04

标签: xpath scrapy

如何将h1标签下的整个文本传递到下一个h1标签?

我的类名以h1开头

...
<h1 class="something">...</h1>
...
<h1 ...>...</h1>
...

我尝试过://*[@class='something']//text()

我想从所有孩子和兄弟姐妹中抓取文字。我不需要h1标签的文本。我不知道如何停止抓取下一个h1标签。

1 个答案:

答案 0 :(得分:3)

举一个适当的例子:

<root>
  <h1 class="something">.1.</h1>
  .2.
  <p>.3.</p>
  .4.
  <h1 class="other">.5.</h1>
</root>

此XPath 1.0表达式:

/root//text()[not(ancestor::h1)][preceding::h1[1][@class='something']]

含义:root个元素的后代文本节点,其第一个在先的h1元素的@class属性等于'something´,并且没有祖先{{ 1}}元素”

它选择

h1

http://www.xpathtester.com/xpath/ecd4f379b13558572ffd62d0db3a3f98中测试