Beautiful Soup - QLGQ/learning-python GitHub Wiki

Introduction

Beautiful Soup是一个解析网页和构造结构化数据表达形式的优秀函数库。它允许我们利用类型(type)、ID,或者任何其他的属性来访问网页内的任何元素,并获取到代表其内容的字符串。Beautiful Soup还可以很好地处理包含不规范HTML标记的Web页面,当我们根据站点的内容来构造数据集时,这一点是非常有用的。

Download

我们可以从 http://crummy.com/software/BeautifulSoup 下载到Beautiful Soup。这是一个单独的Python文件,我们可以将它放到Python库所在路径下,或者放到工作路径——即启动Python解释器的路径下。

Usage

待Beautiful Soup安装完毕之后,我们就可以在Python解释器中使用它了:

from BeautifulSoup import BeautifulSoup
from urllib import urlopen
soup = BeautifulSoup(urlopen('http://google.com'))
soup.head.title
<title>Google</title>
links = soup('a')
len(links)
21
links[0]
<a href="http://www.google.com/ig?hl=en">iGoogle</a>
liks[0].contents[0]
u'iGoogle' 

在上一示例中,我们对Google首页的HTML文本进行了解析,并示范了从DOM树上提取元素和查找链接的方法。

import urllib2
from BeautifulSoup import BeautifulSoup
c = urllib2.urlopen('http://kiwitobes.com/wiki/Programming_language.html')
soup = BeautifulSoup(c.read())
links = soup('a')
links[10]
<a href="/wiki/Algorithm.html" title="Algorithm">algorithms</a>
links[10]['href']
u'/wiki/Algorithm.html'

要构造一个soup对象——这是Beautiful Soup描述Web网页的方式——只需利用页面内容对其进行初始化即可。我们可以将标签内容作为参数来调用soup,比如上例中的“a”,调用的结果将返回一个属于该标签类型的对象列表。其中的每一个对象也都是可访问的(addressable),我们可以逐层深入地访问到对象的属性,以及其下所属的其他对象。

⚠️ **GitHub.com Fallback** ⚠️