返回
Python 爬虫 30行代码实现酷狗音乐歌曲数据抓取
见解分享
2023-11-21 00:21:27
前言
网络爬虫,又称网络蜘蛛,是一种用于从网络上自动获取信息的程序。随着互联网的飞速发展,爬虫技术在各个领域得到了广泛的应用,例如数据采集、信息检索、搜索引擎优化等。
本文将介绍如何使用 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 爬虫,并激发你进一步探索这个有趣而有用的领域。