使用lxml从html获取文本

时间:2014-11-08 16:22:06

标签: python html html-parsing lxml

我试图从lxml使用Xpath从这个站点获取名人名单,但遇到了麻烦。

这是HTML

<div class="lists">
            <dl> <dt>A</dt> <dd><a href="/people/adam_levine/" id="20608779">Adam Levine</a>    </dd>

我想得到文章Adam Levine

我在python中的代码是......

celebs = tree.xpath('//dd[a]/following-sibling::node()')

但我的结果是元素dd在0x1084ad4c8&gt; ...

如果有人能提供帮助那就太棒了。感谢

1 个答案:

答案 0 :(得分:0)

使用text()提取文字,而不是following-sibling::node(),如下所示:

from lxml import etree

# your HTML is invalid, I have purposefully put the </dl> and </div> closing tags
s = '''<div class="lists">
            <dl> <dt>A</dt> <dd><a href="/people/adam_levine/" id="20608779">Adam Levine</a>    </dd></dl></div>'''

tree = etree.fromstring(s)

tree.xpath('.//dd/a/text()')
['Adam Levine']