【生意多】-免费发布分类信息
当前位置: 首页 » 新闻 » 教程 » 正文

Python爬虫之pyquery基本CSS选择器

放大字体  缩小字体 发布日期:2020-04-17 06:16:36    浏览次数:19
导读

  这里我们初始化PyQuery对象之后,传入了一个CSS选择器#container .list li,它的意思是先选取id为container的节点,然后,打印输出。可以看到,我们成功获取到了符合条件的节点。  子节点查找子节点时,需要用到find( )方法,此时传入的参数是CSS选择器。这里还是以前面的HTML为例子:  首先,我们选取class为list

  这里我们初始化PyQuery对象之后,传入了一个CSS选择器#container .list li,它的意思是先选取id为container的节点,然后,打印输出。可以看到,我们成功获取到了符合条件的节点。

  子节点查找子节点时,需要用到find( )方法,此时传入的参数是CSS选择器。这里还是以前面的HTML为例子:

  首先,我们选取class为list的节点,然后调用了find( )方法,传入CSS选择器,选取其内部的li节点,最后打印输出。可以发现,find( )方法会讲符合条件的所有节点选择出来,结果的类型是PyQuery类型。

  其实,find( )方法的查找范围是节点的所有子孙节点,而如果我们只想查找子节点,那么可以用children( )方法:

  如果要筛选所有子节点中符合条件的节点,比如想筛选出子节点中的class为active的节点,可以向children( )方法传入CSS选择器,active:

  这里我们首先用.list选取class为list的节点,然后调用parent( )方法得到其父节点,其类型依然是PyQuery类型。

  这里的父节点是该节点的直接父节点,也就是说,它不会再去查找父节点的父节点,即祖先节点。但是如果想获取某个祖先节点,该怎么办呢?这时可以用parents( )方法:

  可以看到,输出结果有两个:一个是class为wrap的节点,一个是id为container的节点。也就是说,parents( )方法会返回所有的祖先节点。

  如果想要筛选某个祖先节点的话,可以向parents( )方法传入CSS选择器,这样就会返回祖先节点中符合CSS选择器的节点:

  兄弟节点前面我们说明了子节点和父节点的用法,还有一种节点,那就是兄弟节点。如果要获取兄弟节点,可以使用siblings( )方法。这里还是以上面的HTML代码为例:

  这里首先选择class为list的节点内部class为item-0和active的节点,也就是第三个li节点。那么,很明显,它的兄弟节点有4个,那就是第一二三四五个li节点。

  如果要筛选某个兄弟节点,我们依然可以向siblings( )方法传入CSS选择器,这样就会从所有兄弟节点中挑选出符合条件的节点了:

  这里我们筛选了class为active的节点,通过刚才的结果可以观察到,class为active的兄弟节点只有第四个li节点,所以结果应该是一个。

 
关键词: css基础选择器
(文/小编)
打赏
免责声明
• 
本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:http://www.31duo.com/news/show-146951.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
 

(c)2016-2019 31DUO.COM All Rights Reserved浙ICP备19001410号-4

浙ICP备19001410号-4