如何通过Python爬取QQ音乐?
我们在QQ音乐中可以可以通过歌单分享给好友,将歌单通过微信分享给好友,进一步在微信中可以直接点开播放,基于此分析,是可以爬取相应音乐的。
于是在PC端微信,将歌单在浏览器中打开,查看发现并不能播放音乐,除非模拟成Android或者iOS客户端,看来QQ音乐做了客户端识别,所以如果想在打开的歌单分享页面找到音乐文件列表,就必须让模拟移动端浏览器打开相应的链接。
#读取url网址对应的html内容 def get_page_html(url): #假冒浏览器 #url首先封装到一个对象中 req = request.Request(url) req.add_header('User-Agent','Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36') data = request.urlopen(req).read() data = data.decode("UTF-8") return data
这样在返回结果中就顺利找到了音乐文件列表,接下来也就很容易进行歌曲文件下载了。
#万码 根据 歌单分享url获取带有歌曲文件列表的json数据 def get_music_jsondata(url): html = get_page_html(url) soup = BeautifulSoup(html, "html.parser") pagedata = soup.find("script", string=re.compile("firstPageData")) pagedata = pagedata.string.strip() pagedata = pagedata[pagedata.index("=") + 1:-1] pagedata = json.loads(pagedata) return pagedata
进而就可以根据歌单文中的文件下载mp3歌曲文件了。
0条评论
点击登录参与评论