简单Beautiful Soup教程

何为Beautiful Soup

下面的话引用自官方文档:

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

确实,Beautiful是在爬虫应用中,解析提取Html元素的一个简单易用但高效的库。

安装 Beautiful Soup

安装的方式也有很多,可以从源码编译安装,也可以使用python的包管理器来快速安装,后者是常用的方式。

pip install beautifulsoup4

这样便可以在python中通过from bs4 import BeautifulSoup来使用BeautifulSoup。

使用Beautiful Soup

例如有如下html:

<html>
    <body>
        <h1 id="title">hello world!h1>
        <a href="#" class="link">This is link1a>
        <a href="# link2" class="link">This is link2a>
    body>
html>

将网页读进BeautifulSoup中,

from bs4 import BeautifulSoup
html_sample = 
'''

    
        

hello world!

This is link1 This is link2 '''
soup = BeautifulSoup(html_sample, 'html.parser')#html.parser是python的内置标准库用来解析html代码

1. 找出特定标签的html元素

header = soup.select('h1')
print(header)

结果如下:

[<h1 id="title">hello world!h1>]

如果只想保留文字内容,则

print(header[0].text)

2. 找出含有特定CSS属性的元素

使用select可以找出css样式表中,所有id(id前需加#)和class(class前需加.)的元素

title = soup.select('#title')
print(title)

for link in soup.select('.link'):
print(link)

显示如下:

[<h1 id="title">hello world!h1>]
<a class="link" href="#">This is link1a>
<a class="link" href="# link2">This is link2a>

3. 找出某标签的特定属性

alinks = soup.select('a')
for link in alinks:
    print(link['href'])

结果如下:

#
# link2

总结

以上便是Beautiful Soup的一些简单用法,更多用法尽在官方文档,这是一个神奇的库,可以在使用时随时查看文档,记录心得。

你可能感兴趣的:(聚沙成塔)