返回

Python 爬虫 30行代码实现酷狗音乐歌曲数据抓取

见解分享

前言

网络爬虫,又称网络蜘蛛,是一种用于从网络上自动获取信息的程序。随着互联网的飞速发展,爬虫技术在各个领域得到了广泛的应用,例如数据采集、信息检索、搜索引擎优化等。

本文将介绍如何使用 Python 编写一个简单的爬虫,从酷狗音乐网站提取歌曲数据。我们将使用 Python 的 requests 库进行 HTTP 请求,并使用 BeautifulSoup 库解析 HTML 文档。整个代码仅需 30 行,即可实现歌曲信息的抓取。

代码实现

import requests
from bs4 import BeautifulSoup

# 设置请求头,模拟浏览器行为
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
}

# 发送请求,获取酷狗音乐首页 HTML 文档
response = requests.get('https://www.kugou.com/', headers=headers)

# 使用 BeautifulSoup 解析 HTML 文档
soup = BeautifulSoup(response.text, 'html.parser')

# 提取歌曲信息
songs = soup.find_all('li', class_='clearfix song')
for song in songs:
    # 提取歌曲标题
    title = song.find('h2', class_='name').text

    # 提取歌曲歌手
    artist = song.find('p', class_='singer').text

    # 提取歌曲专辑
    album = song.find('p', class_='album').text

    # 提取歌曲时长
    duration = song.find('span', class_='time').text

    # 输出歌曲信息
    print(f'歌曲    print(f'歌曲歌手:{artist}')
    print(f'歌曲专辑:{album}')
    print(f'歌曲时长:{duration}')
    print('=' * 20)

运行结果

运行以上代码,即可输出酷狗音乐首页上部分歌曲的信息:

歌曲歌曲歌手:银临
歌曲专辑:未收录
歌曲时长:04:05
====================
歌曲歌曲歌手:张碧晨
歌曲专辑:芸汐传电视剧原声带
歌曲时长:04:13
====================
歌曲歌曲歌手:张碧晨
歌曲专辑:千古玦尘 电视剧原声带
歌曲时长:04:21
====================
...

常见问题

1. 如何提取其他页面的歌曲信息?

只需修改请求的 URL 即可。例如,要提取第二页的歌曲信息,请将 URL 更改为 'https://www.kugou.com/yy/rank/home/1-8888.html? from=rank'。

2. 如何提取更多信息,例如歌词、评论等?

您可以使用其他 HTML 解析方法或正则表达式来提取更多信息。有关更多详细信息,请参考 BeautifulSoup 文档。

总结

本篇文章介绍了如何使用 Python 编写一个简单的爬虫,从酷狗音乐网站提取歌曲数据。我们使用 requests 库发送 HTTP 请求,并使用 BeautifulSoup 库解析 HTML 文档。整个代码仅需 30 行,即可实现歌曲信息的抓取。

网络爬虫是一个强大的工具,可以用于从网络上收集各种数据。随着技术的不断发展,爬虫技术也在不断更新换代。希望本篇文章能够帮助你入门 Python 爬虫,并激发你进一步探索这个有趣而有用的领域。