【网络爬虫入门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测试样例

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

4、通过标签查找

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

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

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

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

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

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

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

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

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

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

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

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

5、通过CSS类名查找

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

9、通过属性的值来查找

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

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

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

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

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

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

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

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

10、通过标签逐层查找

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

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

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

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

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

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

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

12、小结

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

上一篇:java第三周学习


下一篇:操作系统开发系列—13.e.三进程