如何使用选择器定位除第一个以外的所有对象

时间:2019-08-22 03:37:01

标签: python html css beautifulsoup css-selectors

我想选择除第一个项目以外的所有目标项目。我使用了':nth-​​of-type(n + 2)',但是系统显示了错误:仅实现了以下伪类:nth-​​of-type

像这样:

data1 = soup1.select('#zoom > div > p:nth-of-type(n + 2)')..

1 个答案:

答案 0 :(得分:1)

问题出在您的beautifulsoup版本中,请确保您使用的版本至少为4.7.1+

在较低版本中,不支持更高级的CSS选择器。

要获得您的实际版本,您可以

import bs4

print(bs4.__version__)

打印:

4.8.0

然后您可以执行CSS选择器,例如p:not(:nth-child(1))

data = '''<div>
  <p>
    1
  </p>
  <p>
    2
  </p>
  <p>
    3
  </p>
</div>'''

soup = bs4.BeautifulSoup(data, 'lxml')
print( soup.select('p:not(:nth-child(1))') )

打印:

[<p>
    2
  </p>, <p>
    3
  </p>]