全部博文(137)
分类: LINUX
2010-09-20 10:17:43
Beautiful Soup 是 Python 内置的网页分析工具,名字叫美丽的蝴蝶,是一个可以快速地解析网页内容的Python HTML/XML 解析器。
重要特性:
在 BeautifulSoup 的帮助下,原本要花数个小时的工作,通过 Beautiful Soup 几分钟即可搞定。
下面让我们看看几个样例。
from BeautifulSoup import BeautifulSoup #解析HTML
from BeautifulSoup import BeautifulStoneSoup #解析XML
import BeautifulSoup #获取任何信息
下面使用一段代码演示Beautiful Soup的基本使用方式。你可以拷贝与粘贴这段代码自己运行。
下面是一个解析文档的方法:
soup.contents[0].name
# u'html'
soup.contents[0].contents[0].name
# u'head'
head = soup.contents[0].contents[0]
head.parent.name
# u'html'
head.next
#Page title
head.nextSibling.name
# u'body'
head.nextSibling.contents[0]
#This is paragraph one.
head.nextSibling.contents[0].nextSibling
#This is paragraph two.
接着是一打方法查找文档中包含的标签,或者含有指定属性的标签
titleTag = soup.html.head.title
titleTag
#Page title
titleTag.string
# u'Page title'
len(soup('p'))
# 2
soup.findAll('p', align="center")
# [This is paragraph one.
]
soup.find('p', align="center")
#This is paragraph one.
soup('p', align="center")[0]['id']
# u'firstpara'
soup.find('p', align=re.compile('^b.*'))['id']
# u'secondpara'
soup.find('p').b.string
# u'one'
soup('p')[1].b.string
# u'two'
当然也可以简单地修改文档
titleTag['id'] = 'theTitle'
titleTag.contents[0].replaceWith("New title")
soup.html.head
#New title
soup.p.extract()
soup.prettify()
#
#
#
# New title
#
#
#
#
# This is paragraph
#
# two
#
# .
#
#
#
soup.p.replaceWith(soup.b)
#
#
#
# New title
#
#
#
#
# two
#
#
#
soup.body.insert(0, "This page used to have ")
soup.body.insert(2, " <p> tags!")
soup.body
# This page used to have two <p> tags!
最后,为大家提供 Beautiful Soup 的文档。希望能对您有帮助。
英文原文: (翻译有删节,请查看原文链接)
chinaunix网友2010-09-21 10:09:09
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com