使用CSS选择Python中的元素范围
我有一张28排的桌子。我试图只选择包含数据的25行,跳过第一个页眉行和最后两个页脚行。以下选择器在Firefox的Web控制台中工作,但在Python中返回0行使用CSS选择Python中的元素范围,python,css,Python,Css,我有一张28排的桌子。我试图只选择包含数据的25行,跳过第一个页眉行和最后两个页脚行。以下选择器在Firefox的Web控制台中工作,但在Python中返回0行 from lxml.cssselect import CSSSelector sel = CSSSelector('table tr:nth-child(n+2):nth-child(-n+26)') 如何选择元素范围?看起来lxml.cssselect中没有实现第n个子范围。 相反,您可以使用Python漂亮的切片语法: from
from lxml.cssselect import CSSSelector
sel = CSSSelector('table tr:nth-child(n+2):nth-child(-n+26)')
如何选择元素范围?看起来lxml.cssselect中没有实现第n个子范围。 相反,您可以使用Python漂亮的切片语法:
from lxml.cssselect import CSSSelector
from lxml.etree import fromstring
# Document with table, containing header, three data rows and two footer rows:
doc = fromstring('''<table><tr><td>header</td></tr><tr><td>Data 1</td></tr><tr><td>Data 2</td></tr><tr><td>Data 3</td></tr><tr><td>footer1</td></tr><tr><td>footer2</td></tr></table>''')
sel = CSSSelector('table tr')
rows = sel(doc)[1:-2] # remove header, footer1, footer2 from result
for tr in rows:
print tr.getchildren()[0].text
你仍然可以选择全部,然后删除那些你不需要的,对吗?你确定
nth child
选择器受lxml.cssselect
支持吗?@kecer如果可能的话,我更喜欢在CSS选择器中执行@Alik Yes,'table tr:nth child(n+2)
工作,但是链接另一个nth child
不工作。
Data 1
Data 2
Data 3