Python系列之六_BeautifulSoup
在解析HTML源代码时,除了使用正则表达式,BeautifulSoup也是一个利器。
BeautifulSoup是一个Python第三方库,翻译成中文的意思就是“美丽的汤”。
soup[su:p]汤
一、下载并安装BeautifulSoup
这是它的官网:https://www.crummy.com/software/BeautifulSoup/
这是下载链接:https://www.crummy.com/software/BeautifulSoup/bs4/download/
我下载的版本是4.3.2,得到beautifulsoup4-4.3.2.tar.gz。
将此文件解压到python的安装目录下:
这时,打开一个命令窗口(开始->运行->cmd),输入“cd C:\Python27\beautifulsoup4-4.3.2”,切换到beautifulsoup目录下。
连续输入两个命令:setup.py build和setup.by install。
感觉很像linux中软件包的安装,执行setup.py脚本,build是构建,install是安装。
安装成功后,后退一级(cd ..),进python,在python的提示符中输入“from bs4 import BeautifulSoup”,测试是否安装成功。如果不报错,就说明安装成功了。
二、BeautifulSoup小案例
下面我们来编写一个小案例,体验一下BeautifulSoup的功能:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from bs4 import BeautifulSoup
html = """
<html><head><title>网站首页</title></head>
<body>
<p class="title">丑小鸭的故事</p>
<p class="story">美丽的乡间农舍,一只母鸭寂寞地坐在它的巢里,孵化自已的孩子。
终于,那些鸭蛋一个接一个地裂开了,“僻!僻!”鸭蛋叫起来,并伸出了它们的小头。
瞧!这些小家伙多么活泼,睁着好奇的眼睛正四下张望。
只有一只蛋还躺在那儿,没有一点儿动静。
<a href="http://www.abc.com" class="ad" id="link1">广告1</a>
<a href="http://www.def.com" class="ad" id="link2">广告2</a>
<a href="http://www.ghi.com" class="ad" id="link3">广告3</a>
</p>
<p class="story">“这一个蛋费的时间真久!”母鸭开始抱怨。
“这是一只吐绶鸡的蛋!让它躺在那儿吧。你尽管先教别的孩子去游泳好了。”
一只来访的老母鸭这样劝着。
</p>
"""
soup = BeautifulSoup(html)
print soup.title
print soup.title.name
print soup.title.string
print soup.p
print soup.a
print soup.find_all('a')
print soup.find(id='link3')
print soup.get_text()
这段代码的运行如下:
Python中可以用三个双引号,表示一段较长的字符内容,这一段字符内容可能有多行。
BeautifulSoup对html内容进行解析后,得到一个soup对象。soup.title得到title标签,soup.p和soup.a得到第一个p标签和第一个a标签,如果使用soup.find_all('a'),则可以得到全部的a标签,返回一个列表。soup.get_text()可以得到纯文本内容。
BeautifulSoup的功能很强,以后,我们慢慢解说。