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获得了页面中的所有li元素,而不仅仅是div_a。我无法弄清问题是什么。
答案 0 :(得分:0)
您的XPATH - //li
- 实际上是从根元素中获取元素,因此您获得了所有li
。如果你只想取node
内的元素,你应该给出相对的XPATH。示例 -
li1 = node.xpath(".//li")
上面的 .
表示当前元素,其中div
元素的class
属性为'div_a'
。
答案 1 :(得分:0)
将第二个XPath修改为相对而不是绝对的Anand suggests,或者只使用一个XPath来获取q
元素:
li