问题描述
的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")