【问题标题】:python3 to extract a html part from html with xpathpython3使用xpath从html中提取html部分
【发布时间】:2016-06-07 09:50:32
【问题描述】:

我想用python xpath从下面的html中提取一部分html。 我的问题只是想提取html部分包括标签和文本,而这个Get all text inside a tag in lxml问题是提取html的文本部分,所以这两个问题是不同的。

 <html>
 <body> 
 <div class ="item">
  <ul>
     <li class="item-0"><a href="link1.html">first item</a></li>
     <li class="item-1"><a href="link2.html">second item</a></li>
     <li class="item-inactive"><a href="link3.html">third item</a> </li>
     <li class="item-1"><a href="link4.html">fourth item</a></li>
     <li class="item-0"><a href="link5.html">fifth item</a></li>
  </ul>
  </div>
  <div  class = "movie">
  <div  title = "name">
  <ul>[url=http://]
     <li class="item-0"><a href="link1.html">movie a</a></li>
     <li class="item-1"><a href="link2.html">movie b</a></li>
     <li class="item-inactive"><a href="link3.html">movie c</a></li>
     <li class="item-1"><a href="link4.html">movie d</a></li>
  </ul>
  </div>
  </div>
  </body>
  </html>

其实我只是想从上面的html中提取下面的html。

   <div title = "name">   
   <ul>
     <li class="item-0"><a href="link1.html">movie a</a></li>
     <li class="item-1"><a href="link2.html">movie b</a></li>
     <li class="item-inactive"><a href="link3.html">movie c</a></li>
     <li class="item-1"><a href="link4.html">movie d</a></li>
    </ul>
   </div>

我的代码导入请求

 page = requests.get('........html')
 tree = html.fromstring(page.content)
 body = tree.xpath('//div[contains(@title, "name")]')
 print('body:', body)

但结果是

   <Element div at 0x103620e58>

我想获取这部分html中的所有元素,例如

   <ul> <li> .

请使用 xpath 方法而不是其他方法。

【问题讨论】:

标签: html xpath python-3.5


【解决方案1】:

我想获取这部分html中的所有元素,例如

尝试使用:

  body = tree.xpath('//div[contains(@title, "name")]/ul')

或:

更新:(感谢@RafaelAlmeida)所有元素都炸毁了 div

  body = tree.xpath('//div[contains(@title, "name")]//*')

【讨论】:

  • 这不是 OP 要求的!
  • @RafaelAlmeida:嗯,因为“获取所有元素”,你可能是正确的
  • 谢谢@hr_117 和@Rafael Almeida, 我想要的这段代码:body = tree.xpath('//div[contains(@title, "name")]//*') 你是一个好人,认真给你回答。最好的祝愿!此外,如果您有一些关于 xpath 的材料链接或教程,请告诉我!无论如何,非常感谢!
猜你喜欢
  • 1970-01-01
  • 2013-09-12
  • 2015-07-12
  • 1970-01-01
  • 2023-04-10
  • 2016-04-15
  • 2013-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多