BS4是一个用于解析HTML和XML的Python库。在BS4中使用CSS选择器组合可以更精准地定位需要的元素。下面通过代码演示,介绍几种常见的CSS选择器组合。
from bs4 import BeautifulSoup html = '''
这是一个段落
''' soup = BeautifulSoup(html,'lxml') # 通过class选择器和后代选择器组合 p = soup.select('.class1 p') print(p) # 通过class选择器和子选择器组合 p = soup.select('.class1 > p') print(p) # 通过class选择器和兄弟选择器组合 p = soup.select('.class2 ~ p') print(p) # 通过class选择器和相邻兄弟选择器组合 p = soup.select('.class1 + div') print(p)这是另一个段落
以上代码中,通过select()方法传入的参数是一个CSS选择器组合。其中,“.”表示class选择器,“>”表示子选择器,“~”表示兄弟选择器,“+”表示相邻兄弟选择器。
在第一个代码块中,“.class1 p”表示先选择class为class1的元素,再选择其内部的p元素。通过这种方式可以很方便地定位到需要的元素。
在第二个代码块中,“.class1 > p”表示选择class为class1的元素下的直接子元素p。与第一个代码块不同的是,这个选择器只选择class1元素的直接子元素p。
在第三个代码块中,“.class2 ~ p”表示选择class为class2的元素的后面紧随的p元素。这种选择器可以很方便地定位到某元素后面的相关元素。
在第四个代码块中,“.class1 + div”表示选择class为class1的元素后一个相邻的div元素。这种选择器可以很方便地定位到某元素的相邻元素。
通过使用CSS选择器组合,可以更精确地定位到需要的元素。在实际应用中,如爬虫程序中,经常用到这种技巧。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。