【问题标题】:Python Print element from lxml html来自lxml html的Python打印元素
【发布时间】:2016-05-10 16:34:44
【问题描述】:

试图打印出从 lxml 检索到的整个元素。

from lxml import html
import requests

page=requests.get("http://finance.yahoo.com/q?s=INTC")
qtree = html.fromstring(page.content)

quote = qtree.xpath('//span[@class="time_rtq_ticker"]')

print 'Shares outstanding', Shares
print 'Quote', quote

我得到的输出是

Quote [<Element span at 0x1044db788>]

但我想打印出该元素以进行故障排除。

【问题讨论】:

    标签: python lxml.html


    【解决方案1】:

    lxml.html中有函数tostring()

    import lxml, lxml.html
    
    print( lxml.html.tostring(element) )
    

    xpath 返回列表,因此您必须使用[0] 才能仅获取第一个元素

    print( 'Quote', html.tostring(quote[0]) )
    

    for 循环分别处理每个元素

    for x in quote:
        print( 'Quote', html.tostring(x) )
    

    【讨论】:

    • 谢谢。简化它并清除它。当它是一个列表时,试图将它视为一个元素。
    • 有没有办法使用 html5parser 方法做到这一点,而不需要奇怪的 html:div 东西? from lxml import html from lxml.html.html5parser import fragment_fromstring html.tostring(fragment_fromstring('
      hi
      ')) #
      w3.org/1999/xhtml">hi</html:div>'
    • 是否有元素方法可以将其打印为字符串? element.some_method() 之类的东西?
    • @AndreasYankopolus 元素没有特殊的打印方法 - 你有 lxml.html.tostring(element) 用于此。
    猜你喜欢
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多