简单代码,爬取网易云热歌榜所有歌曲 ,一看就会!
本帖最后由 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 = .split('=') 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}.mp3'
# 发送 GET 请求,获取响应内容
response = requests.get(url2, headers=headers).content
# 将响应内容写入文件
with open(f'{name_list}.mp3', 'wb') as f:
f.write(response)
非常好!我支持你!
另外提一些醒,当时我就是因为这个绊脚石被绊倒的(动态渲染),requests 爬取到的并不是 F12,而是 Ctrl+U 歌者文明清理员 发表于 2023-5-17 22:47
非常好!我支持你!
另外提一些醒,当时我就是因为这个绊脚石被绊倒的(动态渲染),requests 爬取到的并 ...
好的非常感谢大佬指点 现在网易云好像加密了,是不是爬不到了呀? chenyiqi12138 发表于 2024-10-16 18:32
现在网易云好像加密了,是不是爬不到了呀?
没有啊,我前段时间还试了,可以的 itzyx 发表于 2024-10-17 08:34
没有啊,我前段时间还试了,可以的
试了下确实可以,向大佬学习{:10_265:}
页:
[1]