bs4模块

bs4模块与案例

使用指南

bs4,全称BeautifulSoup 4,是Python中一个强大的网页解析库,它可以帮助我们方便地从网页中提取数据。bs4将复杂HTML文档转换成树形结构,每个节点都是Python对象,所有对象可以归纳为4种:Tag,NavigableString,BeautifulSoup,Comment。

安装bs4

在Python环境下,我们可以使用pip命令进行安装:

pip install beautifulsoup4

基本使用

1)导入bs4库

from bs4 import BeautifulSoup

2)创建BeautifulSoup对象

我们可以使用以下方式创建一个BeautifulSoup对象:

soup = BeautifulSoup(html_doc, 'html.parser')

这里,'html_doc’是HTML文档字符串,'html.parser’是解析器。

3)访问标签

我们可以使用soup.tag_name访问HTML中的标签。例如:

print(soup.title)

输出:

<title>The Dormouse's story</title>

4)获取标签的属性

我们可以使用tag[‘attr’]或者tag.get(‘attr’)来获取标签的属性。例如:

print(soup.a['href'])

输出:

http://example.com/elsie

5)获取标签的内容

我们可以使用tag.string或者tag.text来获取标签的内容。例如:

print(soup.title.string)

输出:

The Dormouse's story

搜索文档树

bs4提供了多种方法来搜索文档树,例如.find_all(),.find()等。

例如:

html_doc = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p>
"""
soup = BeautifulSoup(html_doc, 'html.parser')
title_tag = soup.find_all('title')
print(title_tag)

输出:

[<title>The Dormouse's story</title>]

网易云音乐案例

获取并解析流行歌曲标题:

请添加图片描述

import requests
from bs4 import BeautifulSoup

response = requests.get(
    url = "https://music.163.com/discover/playlist/?cat=%E6%B5%81%E8%A1%8C",
    headers = {
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0",
        "Referer":"https://music.163.com/"
    }
)
soup = BeautifulSoup(response.text,features="html.parser")
tag = soup.find(name="ul" , attrs={"id" : "m-pl-container"}) # 定位到ul标签
for li in tag.find_all(recursive=False):  # 遍历所有li标签,不进行递归遍历
    a = li.find(name = "a",attrs = {"class":"msk"}) # 获取a标签
    print(a.attrs['title']) # 通过attrs拿到标题属性 也可直接使用a['title']来获取标题

结果:

请添加图片描述

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林小果呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值