python爬虫之BeatifulSoup Select方法总结

简介

BeautifulSoup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。 BeautifulSoup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。 BeautifulSoup已成为和lxmlhtml6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。

CSS 选择器

通过标签名查找

1
2
print(soup.select('title'))
print(soup.select('a'))

通过类名查找

1
print(soup.select('.sister'))

通过id查找

1
print(soup.select('#link1'))

组合查找

1
2
print(soup.select('p #link1'))      #查找p标签中内容为id属性为link1的标签
print(soup.select("head > title")) #直接查找子标签(绝对路径)

属性查找

查找时还可以加入属性元素,属性需要用中括号括起来,注意属性和标签属于同一节点,所以中间不能加空格,否则会无法匹配到。

1
2
print(soup.select('a[class="sister"]'))
print(soup.select('a[href="http://example.com/elsie"]'))