简单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 link1</a>
        <a href="# link2" class="link">This is link2</a>
    </body>
</html>

将网页读进BeautifulSoup中,

from bs4 import BeautifulSoup
html_sample = 
'''
<html>
    <body>
        <h1 id="title">hello world!</h1>
        <a href="#" class="link">This is link1</a>
        <a href="# link2" class="link">This is link2</a>
    </body>
</html>
'''
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 link1</a>
<a class="link" href="# link2">This is link2</a>

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

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

结果如下:

#
# link2

总结

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值