序言

文中的文本及图片来自互联网,仅作学习培训、沟通交流应用,不具备一切商业行为,如有什么问题请立即在线留言以作解决 。

Python爬虫 、数据统计分析、网站建设等实例视频教程在线免费收看

https://space.bilibili.com/523606542

前文內容

Python爬虫新手入门教学(一):爬取豆瓣影评排名信息内容

Python爬虫新手入门教学(二):爬取小说集

Python爬虫新手入门教学(三):爬取链家二手房数据信息

Python爬虫新手入门教学(四):爬取boss直聘招聘职位

Python爬虫新手入门教学(五):爬取B站视頻视频弹幕

Python爬虫新手入门教学(六):制做词云图

Python爬虫新手入门教学(七):爬取腾迅视频视频弹幕

Python爬虫新手入门教学(八):爬取社区论坛文章内容储存成PDF

Python爬虫新手入门教学(九):线程同步爬虫实例解读

Python爬虫新手入门教学(十):爬取之岸4k高清超清壁纸

Python爬虫新手入门教学(十一):近期腾讯王者荣耀肌肤爬取

Python爬虫新手入门教学(十二):LOL全新肌肤爬取

Python爬虫新手入门教学(十三):爬取高品质超清壁纸

Python爬虫新手入门实例教程(十四):爬取有声小说网站数据信息 

基础开发工具

  • Python 3.6
  • Pycharm

有关控制模块的应用

import requests
import os

安裝Python并加上到环境变量,pip安装必须的有关控制模块就可以。

一、确立要求

爬取某音乐平台的排行榜歌曲。

 

二 、网页页面数据统计分析

1 、F12或是鼠标点击点一下查验开启微信开发工具 ,点击播放歌曲,下边会载入出歌曲数据信息 。

 

#  干饭人之歌 音频数据信息详细地址:
https://gm-sycdn.kuwo.cn/82c2c756b7ebeacb907831ff0906199e/601a3aa9/resource/n2/88/78/3642423505.mp3

一键复制黏贴到电脑浏览器中

 


2、依据音频连接中的主要参数,检索搜索来源于

 

# 音频连接来源于
https://www.kuwo.cn/url?format=mp3&rid=160864905&response=url&type=convert_url3&br=129kmp3&from=web&t=1612331691895&httpsStatus=1&reqId=550f7f80-65e4-11eb-9b00-6d65a3b5fef1

一首歌曲的来源于详细地址是找不到规律性的 ,因此要再比照一些此外一首歌曲的连接主要参数

 


如下图所示: rid 和 t 主要参数不一样 ,很显著 t 便是意味着的时间格式,这一应用 time.time() 就拥有,因此能够再次在微信开发工具中检索 rid 的值

 

 

https://www.kuwo.cn/api/www/bang/bang/musicList?bangId=93&pn=1&rn=30&httpsStatus=1&reqId=428dcbf0-65e4-11eb-9b00-6d65a3b5fef1

rid 及其 歌曲名 歌手名都是有了 。

三、编码完成

爬虫剖析构思是从上向下逐渐剖析 ,敲代码则是以下往上写。

1 、获得歌曲的 rid 、歌曲名、歌手名

import pprint
import requests


def get_response(html_url):
    headers = {
        'Cookie': '你自己的cookie',
        'csrf': 'D2YF7NMH81N',
        'Host': 'www.kuwo.cn',
        'Referer': 'https://www.kuwo.cn/rankList',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
    }
    response = requests.get(url=html_url, headers=headers)
    return response


def get_music_info(html_url):
    json_data = get_response(html_url).json()
    pprint.pprint(json_data)
    music_list = json_data['data']['musicList']
    for index in music_list:
        music_name = index['album']
        singer = index['artist']
        music_rid = index['rid']

if __name__ == '__main__':
    url = 'https://www.kuwo.cn/api/www/bang/bang/musicList?bangId=93&pn=1&rn=30&httpsStatus=1&reqId=428dcbf0-65e4-11eb-9b00-6d65a3b5fef1'
    get_music_info(url)

 


回到的是一个json数据信息,一个一个去赋值就可以了,关键的留意点便是headers主要参数的难题 ,假如主要参数不给全,爬取不上数据信息。

2 、获得音频URL详细地址

def get_music_url(music_rid):
    page_url = f'https://www.kuwo.cn/url?format=mp3&rid={music_rid}&response=url&type=convert_url3&br=129kmp3&from=web&t=1612331691895&httpsStatus=1&reqId=550f7f80-65e4-11eb-9b00-6d65a3b5fef1'
    json_data = get_response(page_url).json()
    music_url = json_data['url']
    return music_url

3、储存音频数据信息

def save(music_name, music_url):
    path = 'music\\'
    if not os.path.exists(path):
        os.makedirs(path)
    filename = path   music_name   '.mp3'
    headers = {
        'if-range': '8eba7fc5d5b2f4d223d54612aa3f4773',
        'range': 'bytes=524288-524288',
        'upgrade-insecure-requests': '1',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 Browser/10.7.4313.400',
    }
    music_content = requests.get(url=music_url, headers=headers).content
    with open(filename, mode='wb') as f:
        f.write(music_content)
        print('已经储存:', music_name)

要求音乐下载的详细地址的 headers 必须拆换一下 。要不然爬取不上歌曲。

 

文章来源于网络,如有侵权请联系站长QQ61910465删除
本文版权归去快排Seo www.SEOgurublog.com 所有,如有转发请注明来出,竞价开户托管,seo优化请联系QQ▷61910465