用python制作一个千千音乐的简单爬虫

-环境:python3.6
-模块:requests,发送http请求,安装:pip install requests

-ide:pycharm
-浏览器:chrome.分析网页



主要内容:
获取千千音乐的url
分析MP3的url的下载url:

分析MP3的From data:

song_api = 'http://play.taihe.com/data/music/songlink'
data = {'songIds': ','.join(song_ids), 'hq': 0, 'type': 'mp3', 'pt': 0, 'flag': 1, 's2p': 650, 'prerate': 128,
        'bwt': 266, 'dur': 231000, 'bat': 266, 'bp': 100, 'pos': 65833, 'auto': 0}
通过正则表达式批量获取songids:
 
 
song_ids = re.findall( r'sid":(\d+),', search_html)
  

代码实操:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import requests
import re
# 搜索歌曲
from requests import Response
data = {'key': '周杰伦'}
音乐搜索的URL
search_url = 'http://music.taihe.com/search'
# 发送http请求
search_responset = requests.get(search_url, params=data)
# 设置编码属性
search_responset.encoding = 'utf-8'
search_html = search_responset.text
song_ids = re.findall(r'sid":(\d+),', search_html)
song_api = 'http://play.taihe.com/data/music/songlink'
 
data = {'songIds': ','.join(song_ids), 'hq': 0, 'type': 'mp3', 'pt': 0, 'flag': 1, 's2p': 650, 'prerate': 128,
        'bwt': 266, 'dur': 231000, 'bat': 266, 'bp': 100, 'pos': 65833, 'auto': 0}
# 发送请求
song_response = requests.post(song_api, data=data)
# 将返回来的数据转换为字典
song_info = song_response.json()
song_info = song_info['data']['songList']
# 遍历下载
for song in song_info:
song_name = song['songName']
with open('%s.mp3' % song_name, 'wb')as f:
# 下载MP3
print(song['songLink'])
response = requests.get(song['songLink'])
f.write(response.content)

 
 

 


运行结果:

可通过不同key 下载不同歌手的歌曲,python小白,有什么不足希望大家指出。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值