gpt4 book ai didi

python -
标签之间节点的 Scrapy 选择器

转载 作者:行者123 更新时间:2023-11-30 23:20:59 25 4
gpt4 key购买 nike

我有这样的 HTML 代码

<div>
Foo <span>Bar</span><br />
Baz<br />
<b>Foobar</b> Quux
</div>

现在我想处理由 <br /> 分隔的节点像这样的标签:

nodes  = sel.xpath("???")
my_foo = nodes[0] # contains Foo <span>Bar</span>
my_bar = nodes[1] # contains Bar
my_fb = nodes[2] # contains <b>Foobar</b> Quux

是否有一些 XPath 或 CSS 表达式可以执行此操作,或者我是否必须迭代 <div> 的所有子节点,在该过程中为每个不是 <br> 的节点构建一个数组?

最佳答案

我能想到的最接近的是:

[sel.xpath('''.//div/node()[count(preceding-sibling::br)=%d]
[not(self::br)]''' % i).extract()
for i in range(0, len(sel.xpath('.//div/br'))+1)]

它给你:

[[u'\n  Foo ', u'<span>Bar</span>'],
[u'\n Baz'],
[u'\n ', u'<b>Foobar</b>', u' Quux\n']]

它为您提供 <br/> 之间的节点列表<div>下的元素(计算 <br> 并查找之前有 <br> 的节点(无,然后 1,然后 2))

关于python - <br/> 标签之间节点的 Scrapy 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25143247/

25 4 0