如何从元标记中可靠地提取属性,内容?

时间:2013-02-25 15:35:27

标签: python html string parsing

我有例如。以下几行HTML。我需要提取并获取og:imagecontent属性的列表。问题是,如果我做的是简单的string.split(),则下面的行的结果将不相同,因为第二行在content值中有许多空格。

如何可靠地处理这些字符串并获得如下列表: ['og:image', 'http....whatever.jpg']和第二行相同?

 <meta property="og:image" content="http://google.com/example.jpg"/>
 <meta property="og:title" content="Fant over 300 falske personer i skattelistene"/>

编辑: 我现在正在解析:

tree = etree.HTML( xml )
m = tree.xpath("//meta[@property]")
for i in m:
    og = etree.tostring( i )
    print og # <meta property="og:image" content="http://google.com/example.jpg"/>

也许有一种方法可以直接使用XPath将内容/属性放入列表中?

1 个答案:

答案 0 :(得分:1)

不要将元素转换回字符串,只需通过每个元素的attrib映射获取属性:

for i in m:
    print (i.attrib['property'], i.attrib['content'])