(一)BeautifulSoup4简介**
Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库,它能够通过你喜欢的转换器实现惯用的文档导航、查找、修改文档的方式。Beautiful Soup会帮你节省数小时甚至数天的工作时间。
使用BeautifulSoup
构建一个BeautifulSoup对象需要两个参数,第一个参数解析文本字符串,第二个参数告诉BeautifulSoup使用哪个解析器解析HTML。
解析器负责把HTML解析成相关的对象,而BeautifulSoup负责操作数据(增删查改),“html.parse”是Python内置的解析器,“lxml”则是一个C语言开发的解析器,它的执行速度更快,不过需要额外安装。
BeautifulSoup将HTML抽象成4类主要的数据类型,分别是Tag,NavigableString,BeautifulSoup,Comment。每个标签节点就是一个Tag对象,NavigableString对象一般是包裹在Tag对象中的字符串,BeautifulSoup对象代表整个HTML文档。
NavigableString
获取标签中的内容,直接使用.string即可获取,它是一个NavigableString对象
1.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解析html_doc,能够得到一个 BeautifulSoup 的对象,并能按照标准的缩进格式的结构输出:
知识点01
方法 | 说明 |
---|---|
BeautifulSoup() | 解析HTML文本, 并能按照标准的缩进格式的结构输出。 |
prettify() | 对HTML文本编码和解码。 |
soup.title | 获取title标签和标签中的内容。 |
soup.title.string | 只获取title标签中的内容。 |
soup.title.parent | 获取父节点及其内容。 |
soup.p | 获取第一个p标签,如果要得到其内容:soup.p.string。 |
soup.p[‘class’] | 获取第一个p标签的class属性的内容,返回列表数据类型。 |
find_all( ) | 返回所有满足条件的标签,如果要处理标签使用遍历方法。 |
find() | 获取某一个满足条件的标签。 |
get_te |