从HTML中选择图像标记attr而不使用class或id

时间:2012-07-16 20:24:51

标签: python lxml

我有通过Python用Lxml解析的HTML页面。问题是我必须从HTML图像标记的值中获取,这些值没有任何class或id属性。像这样:

<table cellspacing="0" cellpadding="0" border="0">
<tbody><tr>
<td align="left" valign="top" style="padding: 0 10px 0 60px;">
<img src="/files/135.jpg" width="64" height="64">
</td>
<td align="left" valign="middle"><h1>Archer / Арчер</h1>
</td>
</tr>
</tbody></table>

所以,为了解决我的任务,我有一个问题 - 可以编写类似jquery的表达式来从这个HTML中选择图像标签,或者我必须通过迭代提取属性所有img标签并获取src属性,具有特定的宽度和高度?

2 个答案:

答案 0 :(得分:0)

您应该尝试xpath - 由lxml支持。 你可以使用firepath插件为mozilla firefox稍微玩一下xpath。 你的xpath表达式的结尾可能是(宽度> 64?) ............ / img [@ border =“0”]

答案 1 :(得分:0)

xpath查询适用于您的示例数据:

import lxml.html

root = lxml.html.fromstring('your sample data').getroottree()
root.xpath("//img[@width='64' and @height='64']/@src")
# ['/files/135.jpg']