
使用Python3爬取TOP500音乐信息并存入MongoDB数据库中
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本项目利用Python 3语言编写爬虫程序,抓取TOP500榜单上的音乐数据,并将这些信息存储到MongoDB数据库中,便于后续的数据分析与处理。
要爬取酷狗音乐TOP500的歌曲信息(包括排名、歌名及时间),可以观察到网页版酷狗的不同页面通过改变URL中的数字来实现切换。例如,第一个页面的URL为http://www.kugou.com/yy/rank/home/1-8888.html,将其中的1改为2即可访问第二页的数据,依此类推。每一页显示22首歌曲信息,因此需要生成总共23个不同的URL来获取完整数据集。
以下是实现该功能的一个Python代码示例:
```python
import requests
from bs4 import BeautifulSoup
from time import sleep
def get_music_info(page_number):
url = fhttp://www.kugou.com/yy/rank/home/{page_number}-8888.html
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.text, html.parser)
# 提取页面中音乐的相关信息
music_list = []
for item in soup.find_all(li, class_=pc_temp_songlist):
rank = int(item[data-index]) + (page_number - 1) * 22 + 1
title = item.find(a).get_text()
duration_str = item.find(span, class_=song_time).text.strip()
music_list.append({
rank: rank,
title: title,
duration: duration_str
})
return music_list
def main():
all_music_info = []
for i in range(1, 24):
print(f正在爬取第{i}页...)
page_data = get_music_info(i)
all_music_info.extend(page_data)
# 爬虫应当遵循网站的Robots.txt规定,这里添加延时以避免对服务器造成过大压力
sleep(1)
return all_music_info
if __name__ == __main__:
music_list = main()
```
全部评论 (0)


