700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【网络爬虫入门04】彻底掌握BeautifulSoup的CSS选择器

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

时间:2022-12-18 19:31:10

相关推荐

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

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

广东职业技术学院 欧浩源 -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=/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选择器是个非常方便的方法。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。