我正在尝试搜索包含产品列表的网站的某些文字。什么是获取每个div中第一次出现的类标记文本的XPath?在下面的代码中,我需要为每个div“foo”首次出现span“bar”的文本。
所以我需要XPath只给我“A年”,“C年”等等。
我是新手,没有任何线索可以做到这一点。非常感谢您提供的任何帮助!
<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.
使用// span [@ class ='bar'] [1] / text()之类的东西,只能获得“A年级”。
使用// * [contains(@class,'bar')] / text()之类的东西,可以得到“A年”,“B年”,“C年”和“D年”。
我正在抓取多个页面,每个页面上的项目数量也不同。类名“bar”仅用于我需要的元素,因此此处描述的问题:What is the XPath expression to find only the first occurrence?不适用。
答案 0 :(得分:0)
这个在XPath测试器中运行良好:
//div[@class='foo']/span[@class='bar'][1]/text()
或没有text()
如果你真的不需要它:
//div[@class='foo']/span[@class='bar'][1]
答案 1 :(得分:0)
使用//div[@class = 'foo']/span[@class = 'bar'][1]
,您可以选择属性span
为class
的每个第一个孩子bar
。如果父级的类或名称无关紧要,请使用//*/span[@class = 'bar'][1]
。