• 【网络爬虫入门04】彻底掌握BeautifulSoup的CSS选择器


    【网络爬虫入门04】彻底掌握BeautifulSoup的CSS选择器

    广东职业技术学院  欧浩源 2017-10-21

    1、引言

        目前,除了官方文档之外,市面上及网络详细介绍BeautifulSoup使用的技术书籍和博客软文并不多,而在这仅有的资料中介绍CSS选择器的少之又少。在网络爬虫的页面解析中,CCS选择器实际上是一把效率甚高的利器。虽然资料不多,但官方文档却十分详细,然而美中不足的是需要一定的基础才能看懂,而且没有小而精的演示实例。不过,在本文中,你可以看到......绝对的干活!

    2、CSS选择器概述

        BeautifulSoup支持大部分的CSS选择器。
        语法为:向tag对象或BeautifulSoup对象的.select()方法中传入字符串参数,选择的结果以列表形式返回,即返回类型为list。
        tag.select("string")
        BeautifulSoup.select("string")
        注意:在取得含有特定CSS属性的元素时,标签名不加任何修饰,类名前加点,id名前加 #。

    3、CSS测试样例

    4、通过标签查找

    例1:选择所有的title标签。

    例2:选择所有的p标签中的第3个标签。

    例3:选择body标签下的所有a标签。

    例4:选择body标签下的直接子标签a。

    例5:选择id=link1后的所有兄弟节点标签。类名前加点,id名前加 #。

    例6:选择id=link1后的下一个兄弟节点标签。

    5、通过CSS类名查找

    例7:查找class类名为sister的标签。

    例8:查找P标签下class类名为title的标签。

    6、通过标签的id属性查找

    例9:选择id属性为link2的所有标签。

    例10:选择a标签,其id属性为link2的标签。

    7、同时用多种CSS选择器查询元素

    例11:选择id属性为link2和id属性为link3的所有标签。

    例12:选择class属性为red、id属性为link2和id属性为link3的所有标签。

    8、通过是否存在某个属性来查找

    例13:查找a标签下存在herf属性的标签。

    9、通过属性的值来查找

    例14:选择a标签,其属性href=http://example.com/lacie的所有标签。

    例15:选择a标签,其href属性以http开头的所有标签。

    例16:选择a标签,其href属性以lie结尾的所有标签。

    例17:选择a标签,其href属性包含.com的标签。

    10、通过标签逐层查找

    例18:首先选中所有的p标签中的第3个标签,然后在该标签中查找name的属性值为OHY的标签。

    例19:首先选中所有的p标签中的第3个标签,然后在该标签列表中查找a标签,并将该列表中的第1个标签的文本取出。

    11、返回查找到的元素的第一个标签

    例20:选择class类名为sister的所有标签中的第一个。

    12、小结

        如果你想快速的实现功能更强大的网络爬虫,那么BeautifulSoupCSS选择器将是你必备的利器之一。BeautifulSoup整合了CSS选择器的语法和自身方便使用API。在网络爬虫的开发过程中,对于熟悉CSS选择器语法的人,使用CSS选择器是个非常方便的方法。

  • 相关阅读:
    gulp基础
    字符串及字符串的方法
    ES5
    JS的设计模式
    VSN与GitHub
    JS闭包函数的概念及函数的继承
    Promise的工作原理
    JS原生的Ajax
    MySQL数据库的基本操作
    & 异步使用场景
  • 原文地址:https://www.cnblogs.com/ALittleBee/p/7702560.html
Copyright © 2020-2023  润新知