1.作用:获取网页指定内容
2.引用
from bs4 import BeautifulSoup
from bs4 import BeautifulSoup
file = open("./baidu.html","rb")#baidu.html是存有已经爬取并存下来的网页源代码的文件
html = file.read()#网页源代码
bs = BeautifulSoup(html,"html.parser")#解析html,解析器为html.parser,解析为树形结构
print(bs.a)
print(bs.title)#tag打印出标签tag及其内容:只能拿出找到的第一条
print(bs.title.string)
print(type(bs.title.string))#NavigableString 打印出标签里的内容(字符串)
print(bs.a.attrs)#拿到标签里的所有属性
print(bs)#整个文档的内容
print(bs.a.string)#Comment 是一个特殊的NavigableString,输出的内容不包含注释符号
print(bs.head.contents)#将tag(此处的tag是head)的子节点以列表的方式输出
print(bs.head.contents[1])#用列表所用来获取它的第1个元素
注:详情可搜索:遍历文件树
#字符串遍历
t_list = bs.find_all("a")#查找所有a标签的超链接
print(t_list)
#正则表达式
t_list=bs.find_all(re.compile("a"))#找出含有a字母的标签下的所有链接
print(t_list)
#传入一个函数,根据函数要求来搜索
def name_is_exists(tag)
return tag.has_attr("name")
t_list = bs.find_all(name_is_exists)
print(t_list)
#指定参数经行搜索kwargs
t_list=bs.find_all(id="head")
t_list=bs.find_all(class_=True)
t_list=bs.find_all(href="http://……")
#找出含有响应内容的文本
t_list=bs.find_all(text = "地图")#找出含有“地图”的文本
t_list=bs.find_all(text = ["地图","贴吧"])
t_list=bs.find_all(text=re.compile("\d"))#用正则表达式查出所有含数字的文本内容(标签里的字符串
#limit参数
t_list = bs.find_all("a",limit=3)#获取三条标签为a的文档
#css选择器
t_list = bs.select("title")#通过标签查找
t_list = bs.select(".mnav")#通过类名查找(class="mnav")
t_list = bs.select("#u1")#按照id来查找(id="u1")
t_list = bs.select("a[class='bri']")#通过属性来查找(
t_list = bs.select("head>title")#通过子标签查找(…………)
t_list = bs.select(".mnav ~ .bri")#兄弟节点
print(t_list[0].get.text())#拿第一个文本元素