`
SunnyYoona
  • 浏览: 365322 次
社区版块
存档分类
最新评论

[Python]HTML/XML解析器Beautiful Soup

 
阅读更多

【简介】

Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python库。即HTML/XMLX的解析器。

它可以很好的处理不规范标记并生成剖析树(parse tree)。 它提供简单又常用的导航(navigating),搜索以及修改剖析树的操作。它可以大大节省你的编程时间。

【安装】

下载地址:点击打开链接

Linux平台安装:

如果你用的是新版的Debain或ubuntu,那么可以通过系统的软件包管理来安装:

$apt-getinstallPython-bs4

Beautiful Soup 4 通过PyPi发布,所以如果你无法使用系统包管理安装,那么也可以通过easy_installpip来安装.包的名字是beautifulsoup4,这个包兼容Python2和Python3.

$easy_installbeautifulsoup4

$pipinstallbeautifulsoup4

(在PyPi中还有一个名字是BeautifulSoup的包,但那可能不是你想要的,那是Beautiful Soup3的发布版本,因为很多项目还在使用BS3, 所以BeautifulSoup包依然有效。

但是如果你在编写新项目,那么你应该安装的beautifulsoup4)

如果你没有安装easy_installpip,那你也可以下载BS4的源码,然后通过setup.py来安装。

$Pythonsetup.pyinstall

如果上述安装方法都行不通,Beautiful Soup的发布协议允许你将BS4的代码打包在你的项目中,这样无须安装即可使用.

作者在Python2.7和Python3.2的版本下开发Beautiful Soup, 理论上Beautiful Soup应该在所有当前的Python版本中正常工作

windows平台:

下载完成之后需要解压缩,假设放到D:/IT/Python27下。
运行cmd,切换到D:/IT/Python27/beautifulsoup4-4.3.2/目录下(根据自己解压缩后的目录和下载的版本号修改)。
运行命令:python setup.py build和python setup.py install

即可安装完毕<前提是你的python路径加入到环境变量中了>


【案例】

下面的一段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解析这段代码,能够得到一个BeautifulSoup的对象,并能按照标准的缩进格式的结构输出:

from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc)

print(soup.prettify())
# <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 class="sister" href="http://example.com/elsie" id="link1">
#     Elsie
#    </a>
#    ,
#    <a class="sister" href="http://example.com/lacie" id="link2">
#     Lacie
#    </a>
#    and
#    <a class="sister" href="http://example.com/tillie" id="link2">
#     Tillie
#    </a>
#    ; and they lived at the bottom of a well.
#   </p>
#   <p class="story">
#    ...
#   </p>
#  </body>
# </html>

几个简单的浏览结构化数据的方法:

soup.title
# <title>The Dormouse's story</title>

soup.title.name
# u'title'

soup.title.string
# u'The Dormouse's story'

soup.title.parent.name
# u'head'

soup.p
# <p class="title"><b>The Dormouse's story</b></p>

soup.p['class']
# u'title'

soup.a
# <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>

soup.find_all('a')
# [<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>,
#  <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>,
#  <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]

soup.find(id="link3")
# <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>

从文档中找到所有<a>标签的链接:

for link in soup.find_all('a'):
    print(link.get('href'))
# http://example.com/elsie
# http://example.com/lacie
# http://example.com/tillie

从文档中获取所有文字内容:

print(soup.get_text())
# The Dormouse's story
#
# The Dormouse's story
#
# Once upon a time there were three little sisters; and their names were
# Elsie,
# Lacie and
# Tillie;
# and they lived at the bottom of a well.
#
# ...

【如何使用】

链接地址:点击打开链接













分享到:
评论

相关推荐

    Beautiful Soup爬虫框架在Python爬虫开发中的重要性

    Beautiful Soup是Python中的一个强大的解析库,用于从HTML和XML文件中提取数据。Beautiful Soup可以遍历文档树,并从HTML文档中提取数据。使用Beautiful Soup解析HTML,可以避免繁琐的正则表达式,并且能够在文档...

    python爬虫-Beautiful Soup库入门(四)

    python爬虫-Beautiful Soup库入门说明Beautiful Soup库安装Beautiful Soup库的引用Beautiful Soup库解析器Beautiful Soup类的基本元素例子tag标签tag的name(名字)tag的Attributes(属性)Tag的NavigableString...

    BeautifulSoup(HTMLXML解析器)v4.3.2官方安装版

    Beautiful Soup是一款可以用Python写的一个HTML/XML的解析器工具,如果你需要在一些网站抓取数据,Beautiful Soup可以很好的处理不规范标记并生成剖析树,大大节省工程时间。需要此款工具的朋友们可以前来在使用。 ...

    Python 使用Beautiful Soup 爬虫教程.pdf

    Beautiful Soup是一个可以从HTML或XML中提取数据的Python库。它可以通过你喜欢的转换器快速帮你解析并查找整个HTML文档。 Beautiful Soup自动将输入文档转为Unicode编码,输出文档转为UTF-8编码。因此你不需要考虑...

    beautifulsoup4-4.1.1

    Beautiful Soup 是一个处理Python HTML/XML的模块

    面向新手解析python Beautiful Soup基本用法

    Beautiful Soup就是Python的一个HTML或XML的解析库,可以用它来方便地从网页中提取数据。它有如下三个特点: Beautiful Soup提供一些简单的、Python式的函数来处理导航、搜索、修改分析树等功能。它是一个工具箱,...

    Beautiful_Soup_中文文档

    Beautiful Soup 是用Python 写的一个HTML/XML 的解析器,它可以很好的处理 不规范标记并生成剖析树(parse tree)。它提供简单又常用的导航 (navigating),搜索以及修改剖析树的操作。它可以大大节省你的编程时 间

    【Python爬虫】之 抓取“微医”上的医生信息

    Beautiful Soup是一个HTML/XML解析器,主要功能是解析和提取HTML/XML中的数据,提取数据时,类似于正则表达式的功能。Beautiful Soup将整个文档载入,解析整个DOM树,其时空开销都比较大,性能不如lxml。Beautiful ...

    BeautifulSoup

    Beautiful Soup 是用 Python 写的一个 HTML/XML 的解析器,它可以很好的处理不规范标记并生成剖析树。通常用来分析爬虫抓取的web文档。 注意:为了解决乱码问题,用版本3的。如3.2.1。BeautifulSoup处理后的默认编码...

    Python爬虫数据抽取(二):解析库Beautiful Soup 4

    Beautiful Soup(美丽汤)是一个Python第三方库,用于从HTML和XML文件中提取数据。它与您最喜欢的解析器一起使用,提供了导航,搜索和修改解析树的惯用方式,点击此处进入官网。最新版本Beautiful Soup 4 简称bs4。...

    python爬虫工程师 成长之路七(一) Beautiful Soup4(一)

    文章目录Beautiful Soup4 简介Beautiful Soup4 解析器Beautiful Soup4 安装Beautiful Soup4 解析器安装Beautiful Soup4 简单使用Beautiful Soup4 四大对象TagNavigableStringBeautifulSoupComment Beautiful Soup4 ...

    Python利用Beautiful Soup模块创建对象详解

    安装 通过 pip 安装 Beautiful Soup 模块:pip install ...我们能够使用 Beautiful Soup 模块从 HTML/XML 文档中提取任何数据,例如,网页中的所有链接或者标签内的内容。 为了实现这一点,Beautiful Soup 提供了不

    beautiful-soup中文文档

    Beautiful Soup是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parsetree)。 它提供简单又常用的导航(navigating),搜索以及修改剖析树的操作。它可以大大节省你的编程时间。 对于...

    Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析

    Beautiful Soup是一款高效的Python网页解析分析工具,可以用于解析HTL和XML文件并从中提取数据。 Beautiful Soup输入文件的默认编码是Unicode,输出文件的编码是UTF-8。 Beautiful Soup具有将输入文件自动补全的...

    Python下利用BeautifulSoup解析HTML的实现

    Beautiful Soup 是一个可以从 HTML 或 XML 格式文件中提取数据的 Python 库,他可以将HTML 或 XML 数据解析为Python 对象,以方便通过Python代码进行处理。 文档环境 Centos7.5 Python2.7 BeautifulSoup4 ...

    Python利用Beautiful Soup模块修改内容方法示例

    Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python 库。它能够通过你喜欢的转换器实现惯用的文档导航、查找、修改文档的方式。他还能够修改HTML/XML文档的内容。这篇文章主要介绍了Python利用Beautiful ...

    Beautiful Soup 4官方翻译版.pdf

    Beautiful Soup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup 会帮你节省数小时甚至数天的工作时间

    Python模块 - Beautifulsoup中文手册

    Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间. 这篇文档介绍了...

    Python网页爬虫程序框架

    Beautiful Soup:Beautiful Soup是一个HTML/XML解析库,能够从网页中提取数据,并提供了简单易用的API操作。它适合用于静态网页的解析和数据提取。 Requests:Requests是一个Python HTTP库,可以方便地发送HTTP请求...

Global site tag (gtag.js) - Google Analytics