问题描述
的HTML是这样的:
<body>
<div class="div_a">
<ul class="ul">
<li>li</li>
<li>li</li>
</ul>
</div>
<div class="div_b">
<a>link</a>
<ul>
<li>div_b li</li>
</ul>
</div>
</body>
尝试得到div_a
的li
node = page.xpath("//div[@class='div_a']")
li1 = node.xpath("//li")
但是li1不仅获得了div_a,还获得了页面中的所有li元素。 我不知道是什么问题。
1楼
您的XPATH- //li
实际上是从root元素中获取元素,因此得到了所有li
。
如果只想将node
内的元素作为元素,则应给出相对的XPATH。
范例-
li1 = node.xpath(".//li")
.
在上面的意思是当前元素,它是class
属性为'div_a'
的div
元素。
2楼
修复第二个XPath是相对的,而不是像是绝对的,或者只使用一个XPath首先获取li
元素:
li1 = page.xpath("//div[@class='div_a']//li")