欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Python爬虫|爬取喜马拉雅音频

发布时间:2024/1/8 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Python爬虫|爬取喜马拉雅音频 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

 

"GOOD

Python爬虫|爬取喜马拉雅音频

    喜马拉雅是知名的专业的音频分享平台,用户规模突破4.8亿,汇集了有声小说,有声读物,儿童睡前故事,相声小品等数亿条音频,成为国内发展最快、规模最大的在线移动音频分享平台。今晚分享突破障碍,探秘喜马拉雅的天籁之音,实现实时抓取,并保存到本地!

知识点:

开发环境:windows pycharm requests json

  • 网络反爬技术

  • 文件的操作

  • 网络请求

  • 数据的转换

  • 数据类型的使用

  •  

     

    1.    首先导入requests库

    import requests

     

    6.    将上面获得的json数据转换成字典格式(需要导入json模块)

    import json

     

    4.    header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"}

    这是应对反爬虫机制,伪装成合法浏览器而添加,本来复制过来的是User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36因python不识别User-Agent,所以将User-Agent用引号引起来,同时将冒号后面的内容也用引号引起来即可,这样就有了合法信息;该信息的位置:按F12->Network->headers->RequestHeaders->User-Agent: Mozilla/5.0...详见下图

     

     

    2.    设置url,链接的获取方式:

    打开喜马拉雅官网->点击“轻音乐”->点击“夜色钢琴曲”->选择一首歌后会出现播放按钮(先不要点此按钮)->按F12->点击Network->点击播放按钮->此时调试窗口会弹出播放请求->点击name下的第一栏album?....->点击右边栏Headers->展开General->复制Request URL下的网址https://www.ximalaya.com/revision/play/album?albumId...即可

     url = "https://www.ximalaya.com/revision/play/album?albumId=291718&pageNum=1&sort=1&pageSize=30"

     

     

     

     

    3    将获取的数据赋值给response,打印response

     response = requests.get(url).text

     print(response)

    结果未获取到数据,因为网站做了反爬虫机制,所以要在上面添加header伪装成合法身份

     

    5.     因为上面添加了header变量,所以应该把第3步替换为:

    response = requests.get(url,headers = header).text

    print(response)

     

     

    添加header后,重新运行获得了数据(JSON格式);复制下面的获取的数据,打开网址http://www.bejson.com/,在输入框中粘贴刚才的数据,点击“格式化校验”即可辨别是什么格式的文件;JSON类型为str,字典的类型为dict;它们的区别:d ={'name':'zs','gender':'man'} ===>是字典类型;而 s ='{'name':'zs','gender':'man'}' ===>是字符串类型,是JSON格式的字符串

     

    7.    转换后赋值给audio_data(可在刚才判断类型的工具中查看一层一层的关系)

    audio_data = json.loads(response)['data']['tracksAudioPlay']

     

     

    8.    循环遍历链接及文件名

    for audio_info in audio_data:

        music_url = audio_info['src']

        music_name = music_url.split('/')[-1]

     

     

    9.    将获得的数据保存在硬盘music中

     

     

    鼠标左键点击左边栏的music文件夹,将其打开,右键随便一首歌曲,点击“show in explorer”即可打开音频文件。

     

     

     注意事项

     

    代码操作的顺序是1-9,完整顺序是1,6,4,2,3,5,7,8,9;

    这是因为代码存在BUG 的时候要不断的添加删除项

     

     

     

     

     

    学的到东西的事情是锻炼,学不到的是磨练,所以我一直走在练的路上。

    共享新方式
    长按识别二维码,关注我们

     

    转载于:https://www.cnblogs.com/RyanLea/p/11072070.html

    总结

    以上是生活随笔为你收集整理的Python爬虫|爬取喜马拉雅音频的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。