Beautiful Soup是Python的一个网页解析库,处理快捷; 支持多种解析器,功能强大。教程细致讲解Beautiful Soup的深入使用、节点选择器、CSS选择器、Beautiful Soup4的方法选择器等重要知识点,是学好爬虫的基础课程。
节点选择器——提取信息的方法
学习目标
- 掌握节点选择器提取信息的方法
1. 提取信息的方法
通过选择元素的方式,我们获取到了标签的全部信息,如果我们想要提取标签中的信息,可以使用如下方式:
(1) 获取节点名称
-
格式:
soup.tag.name
-
返回值:字符串
-
示例:
html = ''' <div class="panel"> <div class="panel-heading"> <h4>Hello</h4> </div> <div class="panel-body"> <ul class="list" id="list-1"> <li class="element"> Foo</li> <li class="element">Bar</li> <li class="element">]ay</li> </ul> <ul class="list list-small" id="list-2"> <li class="element"> Foo</li> <li class="element">Bar</li> </ul> </div> </div> ''' from bs4 import BeautifulSoup soup = BeautifulSoup(html, 'lxml') # 获取a标签的名字 result = soup.a.name print(result) # 输出结果: a
(2) 获取节点属性值
-
格式:
soup.tag.attrs
-
返回值:字典
-
示例:
html = ''' <div class="panel"> <div class="panel-heading"> <h4>Hello</h4> </div> <div class="panel-body"> <ul class="list" id="list-1"> <li class="element"> Foo</li> <li class="element">Bar</li> <li class="element">]ay</li> </ul> <ul class="list list-small" id="list-2"> <li class="element"> Foo</li> <li class="element">Bar</li> </ul> </div> </div> ''' from bs4 import BeautifulSoup soup = BeautifulSoup(html, 'lxml') # 获取a标签的属性 result = soup.a.attrs print(result) # 输出结构 { 'href': 'http://example.com/elsie', 'class': ['sister'], 'id': 'link1'}
(3) 获取节点文本内容
-
格式:
soup.tag.string
-
返回值:字符串
-
示例:
html = ''' <div class="panel"> <div class="panel-heading"> <h4>Hello</h4> </div> <div class="panel-body"> <ul class="list" id="list-1"> <li class="element"> Foo</li> <li class="element">Bar</li> <li class="element">]ay</li> </ul> <ul class="list list-small" id="list-2"> <li class="element"> Foo</li> <li class="element">Bar</li> </ul> </div> </div> ''' from bs4 import BeautifulSoup soup = BeautifulSoup(html, 'lxml') # 获取a标签的内容 result = soup.a.string print(result) # 输出结构 Elsie
2. 总结
节点选择器提取信息的方法:
- soup.tag.name
- 用来提取节点名称
- soup.tag.attrs
- 用来提取属性
- soup.tag.string
- 用来提取内容