Beautiful Soup模块
Posted saneri
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Beautiful Soup模块相关的知识,希望对你有一定的参考价值。
Beautiful Soup 是一个可以从html或XML文件中提取数据的Python库,它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间.
快速开始,以如下html作为例子.
html_doc = """ <html><head><title>The Dormouse‘s story</title></head> <body> <p class="title"><b>The Dormouse‘s story</b></p> <p class="story">Once upon a time there were three little sisters; and their names were <a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>, <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and <a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>; and they lived at the bottom of a well.</p> <p class="story">...</p> """
使用BeautifulSoup解析这段代码,能够得到一个 BeautifulSoup
的对象,并能按照标准的缩进格式的结构输出:
from bs4 import BeautifulSoup soup = BeautifulSoup(html_doc,‘html.parser‘) print(soup.prettify()) <html> <head> <title> The Dormouse‘s story </title> </head> <body> <p class="title"> <b> The Dormouse‘s story </b> </p> <p class="story"> Once upon a time there were three little sisters; and their names were <a class="sister" href="http://example.com/elsie" id="link1"> Elsie </a> , <a class="sister" href="http://example.com/lacie" id="link2"> Lacie </a> and <a class="sister" href="http://example.com/tillie" id="link3"> Tillie </a> ; and they lived at the bottom of a well. </p> <p class="story"> ... </p> </body> </html>
几个简单的浏览结构化数据的方法:
soup.title <title>The Dormouse‘s story</title> soup.title.name ‘title‘ soup.title.string "The Dormouse‘s story" soup.title.strings <generator object _all_strings at 0x0000025B5572A780> soup.title.parent.name ‘head‘ soup.p <p class="title"><b>The Dormouse‘s story</b></p> soup.p[‘class‘] [‘title‘] soup.a <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a> soup.find_all(‘a‘) [<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>, <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>, <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>] soup.find(id=‘link3‘) <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>
从文档中找到所有<a>标签的链接:
for link in soup.find_all(‘a‘): print(link.get(‘href‘)) http://example.com/elsie http://example.com/lacie http://example.com/tillie
从文档中获取所有文字内容:
print(soup.get_text()) The Dormouse‘s story The Dormouse‘s story Once upon a time there were three little sisters; and their names were Elsie, Lacie and Tillie; and they lived at the bottom of a well.
以上是关于Beautiful Soup模块的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Mac 上安装 Beautiful Soup 模块?