Beautiful Soup的用法(一):安装和基础信息提取

从爬虫获取了html的源代码以后,通常我们是需要提取html代码里面的关键信息, 而提起关键信息可以用很多种方式,最常用的就是用正则表达式进行匹配了,在python 中有一个很优秀的第三发库,同样可以更优雅的做这些事情,这就是这系列文章要介绍的 Beautiful Soup

关于Beautiful Soup 的介绍,这里就先不多说了,现在Beautiful Soup 的版本已经到了 4.x, 介绍的话也是关于 4.x的内容。

Beautiful Soup 的安装

还是使用python 中简单使用的 easy_installpip

如下安装:

pip install beautifulsoup4

或者你想用

easy_install beautifulsoup4

Beautiful Soup 3 目前已经停止开发,推荐在现在的项目中使用Beautiful Soup 4,不过它已经被移植到BS4了,也就是说导入时我们需要 import bs4

提取关键信息

Beautiful Soup 在解析html的时候用到了很多html的相关知识,在这里先不做太多的介绍,先来看看,我们是如何提取和得到关键信息的。

在这里先看一段html 代码如下:

<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title" name="dromouse"><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>
</body>
</html>

需要提取所有a标签下的 链接地址,也就是 href 字段的值。

#!/usr/bin/python
#coding=utf-8

from bs4 import BeautifulSoup

html = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title" name="dromouse"><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>
</body>
</html>
"""

soup = BeautifulSoup(html, "lxml")

as_soup = soup.find_all('a')

for a_soup in as_soup:
    print a_soup['href']

输出的结果如下:

http://example.com/elsie
http://example.com/lacie
http://example.com/tillie

找到了所有a 下的链接,这是Beautiful Soup在提取关键信息的第一次尝试,如果之前使用过用正则来提取信息的话,可以发现Beautiful Soup 更加在意html的整个结构,根据结构来提取出需要的关键信息。

转载请标明来之:http://www.bugingcode.com/

更多教程:阿猫学编程

Beautiful Soup的用法 系类文章