【问题标题】:lxml get the all the html of an xpath selected elementlxml 获取 xpath 选定元素的所有 html
【发布时间】:2022-01-12 08:53:40
【问题描述】:

所以我有一段给定的 HTML,我想使用 xpathlxml 选择其中的一部分

from lxml import etree  

example_html = '''
    <div>
     <span>
       <p>abc</p>
       <p>def</p>
     </span>
    </div>
'''

htmlparser = etree.HTMLParser()
tree = etree.fromstring(example_html, htmlparser)

el = tree.xpath('//div')

el 现在显然是这个[&lt;Element div at 0x7f61154c3f88&gt;] 我想做的是一个el[0].get_html() 得到:

 <span>
   <p>abc</p>
   <p>def</p>
 </span>

这可能吗?如果不使用 lxml 是否还有另一个库?

【问题讨论】:

    标签: python-3.x lxml


    【解决方案1】:

    你可以试试 BeautifulSoup,

    from bs4 import BeautifulSoup
    
    example_html = '''
        <div>
         <span>
           <p>abc</p>
           <p>def</p>
         </span>
        </div>
    '''
    
    soup = BeautifulSoup(example_html)
    print(soup.span)
    
    
    <span>
           <p>abc</p>
           <p>def</p>
    </span>
    

    【讨论】:

    • 是的,我实际上想将输出放入 BeautifulSoup 以获取文本,但我发现 xpath 非常强大,可以“选择”非常复杂的 html 文档的部分
    猜你喜欢
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    • 2020-08-14
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 2016-02-20
    • 2011-10-17
    相关资源
    最近更新 更多