2021-03-14

bs4库的用法

导入包

from bs4 import BeautifulSoup # 用于解析爬取的文件

file = open('./baidu.html','rb') # 指定要读取的文件,以二进制方式打开
html = file.read().decode("utf-8") # 读取文件,以utf-8编码方式读取
bs = BeautifulSoup(html,"html.parser") # 告诉BeautifulSoup我们要解析的是html,用的是html.parser解析器

查询

  1. find_all()——
    字符串过滤:查找字符串完全匹配的内容
t_list = bs.find_all("a")  # 查询所有包含a的
print(t_list)  
# 结果:
[<a class="mnav" href="http://news.baidu.com/" name="tj_trnews"><!--新闻--></a>, <a class="mnav" href="http://news.baidu.com/" name="tj_trnews">新闻</a>, <a class="mnav" href="https://www.hao123.com/" name="tj_trhao123">hao123</a>, <a class="mnav" href="http://map.baidu.com/" name="tj_trmap">地图</a>, <a class="mnav" href="http://v.baidu.com/" name="tj_trvideo">视频</a>, <a class="mnav" href="http://tieba.baidu.com/" name="tj_trtieba">贴吧</a>, <a class="bri" href="//www.baidu.com/more/" name="tj_briicon" style="...">更多产品</a>]
  1. search()——
    正则表达式搜索:使用search()方法来匹配内容
import re # 导入正则表达式的库
t_list = bs.find_all(re.compile("a")) # 搜索所有包含a的内容
print(t_list)

3.kwargs 参数

t_list = bs.find_all(id='head') # 根据参数的特点来搜索内容
t_list = bs.find_all(class_=True)  # 搜索包含class属性的内容
t_list = bs.find_all(href=True) # 搜索包含href属性的内容
l_list = bs.find_all(content='always') # 搜索content='always'的内容
  1. text 文本
t_list = bs.find_all(text="地图")  # 查找文本内容为“地图”的内容
t_list=bs.find_all(text=['地图','视频','贴吧','更多产品'])
t_list = bs.find_all(text=re.compile('\d'))  # 匹配包含数字的内容
  1. limit参数——限制显示的搜索内容条数
t_list = bs.find_all('a', limit=3)  # 限制选中的内容条数为3条
  1. css选择器
print(bs.select('title'))  # 通过标签来查找,结果:[<title>百度一下,你就知道</title>]
print(bs.select('.bri'))  # 通过class来查找,结果:[<a class="bri" href="//www.baidu.com/more/" name="tj_briicon" style="...">更多产品</a>]
print(bs.select('#u1')) # 通过id来查找
print(bs.select("a[class='bri']"))
print(bs.select("head > title")) #查找head下的子标签title
print(bs.select(".mnav~.bri"))  # 通过兄弟节点来查找

t_list = bs.select(".mnav~.mnav")
print(t_list[0].get_text())  # 新闻
print(t_list[1].get_text())  # hao123

链接

补充BeautifulSoup(下)

上一篇:Deploy 11.2.0.3 RAC+DG on Windows 2008 R2 Step by Step


下一篇:Python爬虫(二)导包、解释urllib、bs4