如何通过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条评论
点击登录参与评论