Lxml cssselect подстановочный знак - PullRequest
3 голосов
/ 08 апреля 2011

Как получить все подстановочные элементы с помощью 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 ]

4 голосов
/ 08 апреля 2011

^= оператор сравнения кажется вам:

tr[id^=Awesome] a
1 голос
/ 08 апреля 2011

Используйте следующее выражение XPath (css не требуется):

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

Это выражение XPath выбирает все tr дочерние элементы узла контекста, которые имеют атрибут id, строковое значение которого начинается со строки 'Awsome'.

...