千千音乐

个人兴趣

我对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魅力真的很大   很简洁  很舒服

原文地址:https://www.cnblogs.com/MaGnet/p/9983306.html