Beautifulsoup使用:
获取title标签:Soup.title
获取标签名字的方法:soup.a.name
获取标签属性的方法:tag=soup.a.attrs (返回字典类型)
<>.find_all(name,attrs,recurisive,string,) 返回一个列表类型,存储查找的结果
Name:对标签名称的检索字符串
Attrs:对标签属性值的检索字符串,可标注属性检索
< tag>() 相当于< tag>.find_all()
Soup() 相当于 soup.find_all()
.Find_all(‘id=xx’) 通过id查找
.Find_all(‘class_=xx’)通过class属性查找
.select()方法:
通过标签名查找
print(bs.select(‘title’))
print(bs.select(‘a’))
通过类名查找
print(bs.select(’.mnav’))
通过id查找
print(bs.select(’#u1’))
组合查找
print(bs.select(‘div .bri’))
属性查找
print(bs.select(‘a[class=“bri”]’))
print(bs.select(‘a[href=“http://tieba.baidu.com”]’))
直接子标签查找
t_list = bs.select(“head > title”)
print(t_list)
from bs4 import BeautifulSoup
str='''
<!DOCTYPE html>
<html>
<head>
<meta content="text/html;charset=utf-8" http-equiv="content-type" />
<meta content="IE=Edge" http-equiv="X-UA-Compatible" />
<meta content="always" name="referrer" />
<link href="https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/bdorz/baidu.min.css" rel="stylesheet" type="text/css" />
<title>百度一下,你就知道 </title>
</head>
<body link="#0000cc">
<div id="wrapper">
<div id="head">
<div class="head_wrapper">
<div id="u1">
<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="display: block;">更多产品 </a>
</div>
</div>
</div>
</div>
</body>
</html>'''
bs=BeautifulSoup(str,'lxml')
print(bs.prettify()) # 格式化html结构
print(bs.title) # 获取title标签的名称
print(bs.title.name) # 获取title的name
print(bs.title.string) # 获取head标签的所有内容
print(bs.head)
print(bs.div) # 获取第一个div标签中的所有内容
print(bs.div["id"]) # 获取第一个div标签的id的值
print(bs.a)
print(bs.find_all("a")) # 获取所有的a标签
print(bs.find(id="u1")) # 获取id="u1"
for item in bs.find_all("a"):
print(item.get("href")) # 获取所有的a标签,并遍历打印a标签中的href的值
for item in bs.find_all("a"): #获取a标签的内容
print(item.get_text())