简介
BeautifulSoup是一个高效的网页解析库,可以从 HTML 或 XML 文件中提取数据。
beautifulsoup支持不同的解析器,比如,对HTML解析,对XML解析,对HTML5解析。一般情况下,我们用的比较多的是 lxml 解析器。
当前最新的 Beautiful Soup 版本为4.4.0,Beautiful Soup 3 当前已停止维护。
安装
pip install beautifulsoup4
使用时导入:
from bs4 import BeautifulSoup
使用
编写一个test.html
<!DOCTYPE html> <html> <head> <title>BeautifulSoup入门</title> </head> <body> <p>你好</p> <a href="www.baidu.com">百度一下</a>
<p id='content'>BeautifulSoup是一个高效的网页解析库,可以从 HTML 或 XML 文件中提取数据。</p> </body> </html>
接着将 html 的源代码传给 BeautifulSoup:
from bs4 import BeautifulSoup soup = BeautifulSoup(open('test.html', encoding='utf-8'),'lxml')
后面都是从soup这个对象获取我们要的内容。
获取标题的内容
>>> print(soup.title.string) BeautifulSoup入门
获取 p 标签里面的内容
>>> print(soup.p.string) 你好
获取 title 的父级标签
>>> print(soup.title.parent.name) head
获取超链接
>>> print(soup.a) <a href="www.baidu.com">百度一下</a>
获取所有超链接
>>> print(soup.find_all('a')) [<a href="www.baidu.com">百度一下</a>]
获取 id 为 content 的标签
>>> print(soup.find(id="content")) <p id="content">BeautifulSoup是一个高效的网页解析库,可以从 HTML 或 XML 文件中提取数据。</p>
获取网页中所有的内容
>>> print(soup.get_text()) BeautifulSoup入门 你好 百度一下 BeautifulSoup是一个高效的网页解析库,可以从 HTML 或 XML 文件中提取数据。
除了find方法之外,如果你对css比较熟悉,也可以使用 select 方法
print(soup.select("title")) print(soup.select("body p")) print(soup.select("body > #content"))
参考链接: