|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 itzyx 于 2024-10-17 08:35 编辑
萌新一枚,学python 也才几个月,最近刚接触到大名鼎鼎的爬虫,刚学习就陷入其中无法自拔,爬小说,爬图片,爬音乐等等~,今天就以爬取网易云热歌榜所有歌曲为例,发个帖子,纪念一下自己的学习成果,希望大佬亲喷哈!
- 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/113.0.0.0 Safari/537.36 Edg/113.0.1774.35'}
- # 发送 GET 请求,并获取响应内容
- url = 'https://music.163.com/discover/toplist?id=3778678'
- response = requests.get(url, headers=headers)
- # 设置响应内容编码
- response.encoding = response.apparent_encoding
- # 使用 BeautifulSoup 解析响应内容
- soup = BeautifulSoup(response.text, 'html.parser')
- # 获取歌曲列表
- song_list = soup.find('ul', {'class': 'f-hide'}).find_all('a')
- # 获取歌曲名称列表
- name_list = []
- for song_name in song_list:
- name_list.append(song_name.string)
- # 获取歌曲 ID 列表
- song_ids = [song['href'].split('=')[1] for song in song_list]
- # 下载歌曲并保存到本地
- for song in range(len(song_ids)):
- # 构造歌曲下载链接
- url2 = f'http://music.163.com/song/media/outer/url?id={song_ids[song]}.mp3'
- # 发送 GET 请求,获取响应内容
- response = requests.get(url2, headers=headers).content
- # 将响应内容写入文件
- with open(f'{name_list[song]}.mp3', 'wb') as f:
- f.write(response)
复制代码
|
-
爬取歌曲
评分
-
查看全部评分
|