今天爬取网易云音乐热歌榜单
一共200首
公众号回复 网易云榜单获取源代码
打开 网页版 网易云
打开开发者模式
全局搜索 赵雷,看看这些信息藏在哪个文件中
发现在这个文件中,歌手和歌曲都有
然后点击标头
查看请求url
请求url:
https://music.163.com/discover/toplist?id=3778678
然后下面开始写代码
先访问
url = "https://music.163.com/discover/toplist?id=3778678"
ua = fake_useragent.UserAgent()
header = {
'user-agent':ua.random
}
response = requests.get(url=url,headers=header)
r = response.text
获取源代码后
我们用re正则表达式来提取信息
歌名和歌曲后半部分地址都在li标签里
所以先把这一大段获取下来
用re正则表达式
# 包含歌曲和歌曲链接的一段字符串
all = ''.join(re.findall('<ul class="f-hide">(.*?)</ul>',r))
然后再从 all 里面用re把歌名和歌曲后半部分url提取下来
# 从 all 里提取歌名
name = re.findall('<a href=".*?">(.*?)</a>',all)
# 从 all 里提取歌曲地址
song_url = re.findall('<a href="(.*?)">.*?</a>',all)
然后开始找歌手的信息
发现歌手的信息在这里
所以直接从页面源码中用re来提取出来
# 从页面全部源代码中提取歌手的信息
singer = re.findall('"artists":\[{"id":.*?,"name":"(.*?)",',r)
提取部分:
然后全部都打印出来
这里用for循环来获取下表进行打印
看效果
公众号回复 网易云榜单 获取源代码
代码仅供学习参考
感谢观看!