• 千千音乐


    个人兴趣

    我对Python的爬虫非常感兴趣  可能是感觉很神奇吧  233

    因为个人刚接触编程时间很短的原因  写的并不是很好

    上代码:

    #coding: utf-8
    import requests
    import re
    import json
    import urllib
    #定义一个变量存放需要下载歌曲的歌手名
    name = str(input("请输入歌手名字:"))
    #
    url = 'http://music.taihe.com/search'
    
    data = {
        'key': name
    }
    #让get请求带怕params请求  请求到歌手页
    response = requests.get(url,params=data)
    
    #对得到的响应文本进行正则筛选   得到歌手歌曲的ID号
    Song = re.findall(r'data-playdata="(.+?)"',response.text)
    Song_id = re.findall(r'"(.d+?)&quot',Song[0])
    
    #确保没有出现重复的ID(虽然感觉没什么用- . - )
    
    Song_id = list(set(Song_id))
    
    #创建一个空的列表用于存放歌曲的下载json文件页
    Songs = []
    
    #循环遍历歌曲ID   并用字符串的拼接得到每一个歌曲的json文件页的url
    for i in Song_id:
        Song_url = Song_url = 'http://musicapi.taihe.com/v1/restserver/ting?method=baidu.ting.song.playAAC&format=jsonp&callback=jQuery172034152563369523636_1542538709186&songid='+ i + '&from=web&_=1542538718924'
        Songs.append(Song_url)
    
    #循环遍历歌曲的url
    for url in Songs:
        Song_resp = requests.get(url)#一次请求歌曲的url
        result = re.findall(r'((.*))',Song_resp.text)[0]#用正则表达式去掉json文件中前面多余的部分
        result2 = json.loads(result)#将得到的json文件转换成Python可直接操作的格式
        Song_name = result2['songinfo']['title']#通过大致读取  用字典的形式取得自己需要的   如歌曲名和MP3地址
        print(Song_name)#打印出得到的歌曲名
        urllib.request.urlretrieve(result2['bitrate']['file_link'],'C:\Users\80it\Desktop\play\'+ Song_name + '.mp3')#将请求歌曲MP3url并将歌曲下载到本地文件名为歌曲名

    Python魅力真的很大   很简洁  很舒服

  • 相关阅读:
    postman-3http请求
    postman-2get发送请求
    postman-1版本区别、选择
    mysql-13处理重复数据
    mysql-12序列使用
    mysql-11元数据
    mysql-10临时表、复制表
    10)global预定义变量
    9)用request方式
    8)post方式提交和简单那处理
  • 原文地址:https://www.cnblogs.com/MaGnet/p/9983306.html
Copyright © 2020-2023  润新知