QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3679|回复: 0
打印 上一主题 下一主题

python爬虫爬取网易云音乐——完整代码

[复制链接]
字体大小: 正常 放大

889

主题

63

听众

17万

积分

  • TA的每日心情
    开心
    2023-3-15 17:49
  • 签到天数: 224 天

    [LV.7]常住居民III

    社区QQ达人 邮箱绑定达人 元老勋章 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    跳转到指定楼层
    1#
    发表于 2021-7-8 17:10 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    原码地址:https://blog.csdn.net/qq_52660776/article/details/113894782?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162569855116780274142448%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162569855116780274142448&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-3-113894782.pc_search_result_before_js&utm_term=python%E7%88%AC%E8%99%AB&spm=1018.2226.3001.4187

    二话不说,就是——上代码;(如果有用,给个三连中不中)
    # -*- codeing = utf-8 -*-
    # @time : 2021/2/20 16:12
    # @Author : 老七疯狂吸氧
    # @FILE kowyy.py
    # @SoftwareyCharm
    import re
    import requests
    import os
    import time
    headers = {
        'User-Agent': 'Chrome/10'
    }
    def main():
        print('例如:罗大佑的网址是:https://music.163.com/#/artist?id=3686','\n','ID就是:3686')
        ID=input("请输入歌手ID:")
        url='https://music.163.com/artist?id='+ID
        html=requests.get(url,headers).text
        get_id(html)

    def get_id(html):
        findlink=re.compile(r'<a href="/song\?id=(\d*)">(.*?)</a></li><li>')
        findname=re.compile(r'<h2 id="artist-name" data-rid=\d* class="sname f-thide sname-max" title=".*?">(.*?)</h2>')
        singername=re.findall(findname,html)[0]
        creat(singername)
        ll=re.findall(findlink,html)
        for i in ll:
            savemusic(i[1],i[0])
            time.sleep(0.5)
    def creat(singername):          #创建文件夹
        if not os.path.exists(singername):
            os.mkdir(singername)  # 如果该目录不存在就创建它
        os.chdir(singername)
    def savemusic(name,id):     #保存文件
        url='http://music.163.com/song/media/outer/url?id='+id+'.mp3'
        with open(name+'.m4a','wb') as f:
            print('歌曲《',name,'》 下载中***************')
            f.write(requests.get(url=url,headers=headers).content)
            f.close()
            print("《",name,"》下载完成")
            print('')
    if __name__ == '__main__':
        main()



    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2024-4-26 13:07 , Processed in 0.379761 second(s), 51 queries .

    回顶部