Beautiful Soup
解析和提取 HTML/XML 数据
优点:支持css选择器,python标准库中的HTML解析器,lxml的XML解析器
缺点:需载入整个文档,因此耗时耗内存,性能低于lxml
基本使用
安装
pip install beautifulsoup4
导包:
from bs4 import BeautifulSoup
创建对象:
soup = BeautifulSoup(html)
soup = BeautifulSoup(open('index.html'))
注意:可通过soup = BeautifulSoup(html,'lxml')
方式指定lxml解析器
格式化输出对象的内容:
print(soup.prettify())
简单使用:
from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen('http://tieba.baidu.com/')
bs = BeautifulSoup(html, 'lxml')
print(bs.title)
>> <title>百度贴吧——全球最大的中文社区</title>
搜索文档
1)find_all():返回解析列表
find_all(name, attrs, recursive, text, **kwargs)
- name:查找所有名字为name的标签,可以传入字符串、正则表达式、列表
- keyword:根据键值对查找相应数据
- text:搜索文档中的字符串内容,可以传入字符串、正则表达式、列表
2)find():返回第一个匹配结果
用法与find_all()
一样
3)select():CSS选择器,返回列表
- 标签名不加任何修饰,类名前加.,id名前加#
标签选择器:soup.select('title')
类选择器:soup.select('.sister')
id选择器:soup.select('#link1')
属性选择器:soup.select('a[class="sister"]')