您的位置:首页 > 编程语言 > Python开发

Python BeautifulSoup 简单笔记

2013-09-30 09:41 525 查看
Beautiful Soup 是用 Python 写的一个 HTML/XML 的解析器,它可以很好的处理不规范标记并生成剖析树。通常用来分析爬虫抓取的web文档。对于 不规则的 Html文档,也有很多的补全功能,节省了开发者的时间和精力。

Beautiful Soup 的官方文档齐全,将官方给出的例子实践一遍就能掌握。官方英文文档中文文档

一 安装 Beautiful Soup

安装 BeautifulSoup 很简单,下载 BeautifulSoup 源码。解压运行

python setup.py install 即可。

测试安装是否成功。键入 import BeautifulSoup 如果没有异常,即成功安装

二 使用 BeautifulSoup

1. 导入BeautifulSoup ,创建BeautifulSoup 对象

2. BeautifulSoup对象简介

用BeautifulSoup 解析 html文档时,BeautifulSoup将 html文档类似 dom文档树一样处理。BeautifulSoup文档树有三种基本对象。

2.1. soup BeautifulSoup.BeautifulSoup

2.2. 标记 BeautifulSoup.Tag

2.3 文本 BeautifulSoup.NavigableString

3. BeautifulSoup 剖析树

3.1 BeautifulSoup.Tag对象方法

获取 标记对象(Tag)

标记名获取法 ,直接用 soup对象加标记名,返回 tag对象.这种方式,选取唯一标签的时候比较有用。或者根据树的结构去选取,一层层的选择

content方法

content方法 根据文档树进行搜索,返回标记对象(tag)的列表

使用
contents
向后遍历树,使用
parent
向前遍历树

next 方法

获取树的子代元素,包括 Tag 对象 和 NavigableString 对象。。。

nextSibling 下一个兄弟对象 包括 Tag 对象 和 NavigableString 对象

与 nextSibling 相似的是 previousSibling,即上一个兄弟节点。

replacewith方法

将对象替换为,接受字符串参数

搜索方法

搜索提供了两个方法,一个是 find,一个是findAll。这里的两个方法(findAll和 find)仅对Tag对象以及,顶层剖析对象有效,但 NavigableString不可用。


findAll(
name, attrs, recursive, text, limit, **kwargs)

接受一个参数,标记名

寻找文档所有 P标记,返回一个列表

寻找 id="secondpara"的 p 标记,返回一个结果集

传一个属性或多个属性对

利用正则表达式

读取和修改属性

剖析树基本方法就这些,还有其他一些,以及如何配合正则表达式。具体请看官方文档

3.2 BeautifulSoup.NavigableString对象方法

NavigableString 对象方法比较简单,获取其内容

至于如何遍历树,进而分析文档,已经 XML 文档的分析方法,可以参考官方文档。

转自:http://rsj217.diandian.com/post/2012-11-01/40041235132

官方文档:http://www.crummy.com/software/BeautifulSoup/bs4/doc/

学习笔记:http://pqcc.iteye.com/blog/627481
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: