Html 在每个div中只查找第一个类标记的XPath是什么?
我正试图从一个有产品列表的网站上抓取一些文字。获取每个div中第一次出现的类标记的文本的XPath是什么?在下面的代码中,我需要每个div“foo”第一次出现span“bar”文本 所以我需要XPath,它只给出“A年”、“C年”等 我是新手,不知道该怎么做。非常感谢您提供的任何帮助Html 在每个div中只查找第一个类标记的XPath是什么?,html,xpath,Html,Xpath,我正试图从一个有产品列表的网站上抓取一些文字。获取每个div中第一次出现的类标记的文本的XPath是什么?在下面的代码中,我需要每个div“foo”第一次出现span“bar”文本 所以我需要XPath,它只给出“A年”、“C年”等 我是新手,不知道该怎么做。非常感谢您提供的任何帮助 <div class="foo"> <span class="bar">year A</span> <span
<div class="foo">
<span class="bar">year A</span>
<span class="qux">some text</span>
<span class="bar">year B</span>
</div>
<div class="foo">
<span class="bar">year C</span>
<span class="qux">some text</span>
<span class="bar">year D</span>
</div>
Etc.
一年
一些文本
B年
C年
一些文本
D年
等
使用类似于//span[@class='bar'][1]/text()的东西,人们只能得到“A年”
使用类似于/*[contains(@class,'bar')]/text()的内容,可以得到“A年”、“B年”、“C年”和“D年”
我正在抓取多个页面,每个页面上的项目数是不同的。类名“bar”仅用于我需要的元素,因此这里描述的问题:不适用。这一问题在XPath tester中运行良好:
//div[@class='foo']/span[@class='bar'][1]/text()
或者不带text()
,如果您真的不需要它:
//div[@class='foo']/span[@class='bar'][1]
使用
//div[@class='foo']/span[@class='bar'][1]
可以选择属性为class
的第一个子span
。如果父级的类或名称无关紧要,则使用/*/span[@class='bar'][1]
很好,对于提供的示例,这似乎很有效。当代码变得更复杂时,公认的答案会提供更高的精度。