本文作者:万艾可

Python采集VIP收费QQ音乐,一起来听周董最新的:说好不哭

万艾可 11个月前 ( 09-24 ) 428 抢沙发
Python采集VIP收费QQ音乐,一起来听周董最新的:说好不哭摘要: 环境:windowspython3.6.5模块:requestsseleniumjsonreurllib环境与模块介绍完毕后,就可以来实行我们的操作了。完整源码:链接:https:...
环境:
  • windows

  • python3.6.5

模块:
  • requests

  • selenium

  • json

  • re

  • urllib环境与模块介绍完毕后,就可以来实行我们的操作了。

完整源码:

链接:https://pan.baidu.com/s/1_oPawjY1zRflSvd8HjUJXQ 

提取码:0uv6 



过期后留言我补!第1步:通过一个解析网站:http://www.douqq.com/qqmusic/我们可以发现,只需要在这里填写QQ音乐的地址,即可获取我们想要的音乐源文件





Python采集VIP收费QQ音乐,一起来听周董最新的:说好不哭  第二步:获取到QQ音乐的地址,打开我们的QQ音乐首页https://y.qq.com




Python采集VIP收费QQ音乐,一起来听周董最新的:说好不哭  通过源文件,我们可以发现里面并没有我们想要的数据:




Python采集VIP收费QQ音乐,一起来听周董最新的:说好不哭  那么,我们再来抓包分析:




Python采集VIP收费QQ音乐,一起来听周董最新的:说好不哭 发现确实有我们想要的数据,但是当我们看到 headers报文当中的 url时,发现都是加密过后的数据!




Python采集VIP收费QQ音乐,一起来听周董最新的:说好不哭 所以涉及到了JS加密,那么 会有很多人感觉到很难,所以我们可以选择另外一个python模块selenium,直接获取我们的element 元素:



Python采集VIP收费QQ音乐,一起来听周董最新的:说好不哭 源代码为:
url=f'https://y.qq.com/portal/search.html#page=1&searchid=1&remoteplace=txt.yqq.top&t=song&w={name}'driver.get(url)driver.implicitly_wait(10)data=driver.find_element_by_xpath('//div[@class="songlist__item"]//span[@class="songlist__songname_txt"]/a').get_attribute('href')

这里的url是通过简单分析得到的结论,只需要修改w参数即可得到不同的音乐。第三步把我们渠道的data链接利用到我们的解析网站:http://www.douqq.com/qqmusic/抓包分析:


Python采集VIP收费QQ音乐,一起来听周董最新的:说好不哭 可以发现这个是一个post请求,然后我们的表单提交的数据,就是我们的QQ音乐地址!第四步:模拟访问这个post请求,拿到我们的返回数据:


[url=]
Python采集VIP收费QQ音乐,一起来听周董最新的:说好不哭 [/url]headers = {    'Accept''application/json, text/javascript, */*; q=0.01',    'Accept-Encoding''gzip, deflate',    'Accept-Language''zh-CN,zh;q=0.9',    'Connection''keep-alive',    'Content-Length''65',    'Content-Type''application/x-www-form-urlencoded; charset=UTF-8',    'Host''www.douqq.com',    'Origin''http://www.douqq.com',    'Referer''http://www.douqq.com/qqmusic/',    'User-Agent''Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36',    'X-Requested-With''XMLHttpRequest',}data = {'mid''前面取到的音乐地址'}url 'http://www.douqq.com/qqmusic/qqapi.php'req = requests.post(url, data=data, headers=headers).text
[url=]

Python采集VIP收费QQ音乐,一起来听周董最新的:说好不哭 [/url]



它的返回值:
Python采集VIP收费QQ音乐,一起来听周董最新的:说好不哭 可以发现MV对应的链接有偏差,不是一个规则的URL,所以在此可以进行数据精炼,得到最终音乐链接:
req = json.loads(req)req = req.replace('\/\/''//').replace('\/''/')rg = re.compile('"mp3_l":"(.*?)",')rs = re.findall(rg, req)[0]第五步:下载音乐:
urlretrieve(rs, name+'.mp3')效果:


文章版权及转载声明

作者:万艾可本文地址:http://www.si124.com/zhan/2019/09/1167.html发布于 11个月前 ( 09-24 )
文章转载或复制请以超链接形式并注明出处【三更网络资源】

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,428人围观)参与讨论

还没有评论,来说两句吧...