Lxml cssselect通配符

时间:2011-04-08 05:43:23

标签: html xpath screen-scraping lxml

如何使用cssselect获取所有通配符元素?

例如:

content = """
<table>
<tr id='Awesome1234'><a href="link1"></a></tr>
<tr id='Awesome5678'><a href="link2"></a></tr>
</table>
"""
doc = lxml.html.fromstring(html)
links = lxml.cssselection('tr.Awesome* a')
for link in links:
    print link.get('href')

我希望它输出:

 link1
 link2

cssselect有可能吗?如果没有,我怎么能得到这个? (xpath的?)

2 个答案:

答案 0 :(得分:4)

^=比较运算符似乎适合您:

tr[id^=Awesome] a

答案 1 :(得分:1)

使用以下XPath表达式(不需要css):

tr[starts-with(@id, 'Awesome')]

此XPath表达式选择具有tr属性的上下文节点的所有id个子节点,其字符串值以字符串'Awsome'开头。