python 听歌识曲_Python实现提取谷歌音乐搜索结果的方法
本文实例讲述了Python实现提取谷歌音乐搜索结果的方法。分享给大家供大家参考。具体如下:
Python的简单脚本,用于提取谷歌音乐搜索页面中的歌曲信息,包括歌曲名,作者,专辑名,现在链接等,最多只提取10页结果。
#! /usr/bin/env python
#coding=utf-8
'''
Created on 2011-8-19
@author: yaoboyuan
'''
from urllib import request,parse
import re,sys
def extractSongRawData(text):
'抓取每一首歌的原始数据'
text = re.sub('\n+','',text)
songList = re.findall('\
',text)
nums = len(songList)
print('search ' + str(nums) + ' songs')
return songList
def translate(text):
'去掉text中的无用字符,转换unicode码'
text = re.sub('\','',text)
text = re.sub('\','',text)
#find the 成 and translate into chinese
s = re.findall('([0-9]+);',text)
if len(s)<=0:
return text
else:
text = ''
for i in range(len(s)):
value = int(s[i],10) #from str'123' to 10 base's int 124
text += chr(value) #from value to char
return text
def extractSongName(song):
'提取歌曲名字'
td = re.findall('(?:\
)',song)
name = re.findall('.+?\(.*?)\',td[0])
songName = translate(name[0])
return songName
def extractAuthorName(song):
'提取作者名字'
td = re.findall('(?:\
)',song)
name = re.findall('.+?\(.*?)\',td[0])
authorName = name[0]
authorName = translate(authorName)
return authorName
def extrackAlbumName(song):
'提取专辑名字'
td = re.findall('(?:\
)',song)
name = re.findall('.+?\(.*?)\',td[0])
albumName = translate(name[0])
return albumName
def extractID(song):
'提取歌曲id'
td = re.findall('''\
if len(td)>0:
return td[0]
else:
return song
def extractLink(song):
'提取歌曲下载链接'
td = re.findall('''\
''',song)
if len(td) == 0:
return 'NULL'
s = str(td[0])
rawLink = re.findall('http.*?(?=\?)',s)
if len(rawLink) == 0:
return s
link = rawLink[0]
link = re.sub('%3D','=',link)
id = extractID(song)
return link + '?id=' + id
def extractPageNums(text):
'提取返回结果的页数,最多要10页'
pageList = re.findall('page_link',text)
return len(pageList)
def extractSongInfo(song):
'提取歌曲信息,返回歌曲列表'
songList = []
for i in range(len(song)):
songName = extractSongName(song[i])
authorName = extractAuthorName(song[i])
albumName = extrackAlbumName(song[i])
link = extractLink(song[i])
songItem = [songName,authorName,albumName,link]
songList.append(songItem)
index = ''
if i<9:
index = '0' + str(i+1)
else:
index = str(i + 1)
#print(index + ' ' + songName + ' ' + authorName + ' ' + albumName + ' ' + link)
return songList
def main():
while True:
url = 'http://www.google.cn/music/search?q='
key = input('请输入歌曲名字或关键字:')
key = parse.quote(key) #统一编码成utf-8
url += key
mf = request.urlopen(url)
c = mf.readall()
c = str(c,encoding = 'utf-8')
num = extractPageNums(c)
print(str(num+1) + ' pages found')
song = extractSongRawData(c)
songList = extractSongInfo(song)
#if the result great than 2 pages, then request all pages
if num>0:
for i in range(num):
start = (i+1)*20
next_page = '&cat=song&start=%d'%(start)
#next_page = parse.quote(next_page) #统一编码成utf-8
url += next_page
mf = request.urlopen(url)
c = mf.readall()
c = str(c,encoding = 'utf-8')
song = extractSongRawData(c)
songList += extractSongInfo(song) #find all results
for i in range(len(songList)): #print the result
index = ''
if i<9:
index = '0' + str(i+1)
else:
index = str(i + 1)
print(index + ' ' + str(songList[i]))
if __name__ == '__main__':
main()
希望本文所述对大家的Python程序设计有所帮助。
python 听歌识曲_Python实现提取谷歌音乐搜索结果的方法相关推荐
- 音乐翻唱软件测试初学者,音乐APP听歌识曲大评测,QQ音乐独家“翻唱识别”领跑...
原标题:音乐APP听歌识曲大评测,QQ音乐独家"翻唱识别"领跑 不知道大家有没有遇到这样一种情况,看综艺时,突然听到一首很好听的歌曲,但是就是不知道歌名,在心里急得呀. 每每遇到这 ...
- python 听歌识曲_Shazam听歌识曲算法解析+python实现-3 检索歌曲
听歌识曲是如何工作的,看完这个你就懂啦! 使用的算法是<An Industrial-Strength Audio Search Algorithm>,部分算法借鉴了Github的dejav ...
- python 听歌识曲_听歌识曲--用python实现一个音乐检索器
作者 | 唯心不易@博客园 http://www.cnblogs.com/chuxiuhong/p/6063602.html 听歌识曲,顾名思义,用设备"听"歌曲,然后它要告诉你这 ...
- python听歌识曲爬虫_Python爬取网易云音乐热门评论的搜索结果-阿里云开发者社区...
网易云音乐评论爬虫(三):爬取歌曲的全部评论 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条.现在我就来分享一下如何爬取网易云音乐歌曲的 ...
- python听歌识曲爬虫_【python爬虫】 爬云音乐我和xxx共同听过的歌曲
闲聊的时候,觉得,想写个爬虫,爬下2个人共同听过的歌曲有哪些,然后一鼓作气,花了一个多小时,写了一个.支持最近一周和所有时间,需要用户没有关闭听歌排行显示 How to start 使用到的工具是Se ...
- 谷歌宣布搜索引擎多个新 AI 功能,听歌识曲 15 秒完成匹配
技术编辑:芒果果丨发自 思否编辑部 公众号:SegmentFault 你有没有哼着一首歌却怎么也想不起歌名的情况?Google 发布了一些搜索功能的更新,其中就有一个"听歌识曲"功 ...
- ipad分屏功能怎么用_QQ音乐的听歌识曲功能怎么用?
提到听歌识曲功能大都想到QQ音乐,但是QQ音乐的听歌识曲功能在哪里呢?怎么使用呢?别急,小编这就告诉大家. 准备:手机.QQ音乐APP.WIFI或者流量 第一步:打开下载好的QQ音乐 第二步,点击右上 ...
- python声音识别歌曲_听歌识曲!python这个骚操作可以了解一下!
音频指纹识别的目的是确定音频的数字"摘要".从而与音频样本进行比对得出它出自哪首歌曲,像现在QQ音乐.网易云音乐等各大音乐软件都有此功能,它根据歌曲的前两到五秒识别音乐歌名.今天我 ...
- 听歌识曲--用python实现一个音乐检索器
听歌识曲,顾名思义,用设备"听"歌曲,然后它要告诉你这是首什么歌.而且十之八九它还得把这首歌给你播放出来.这样的功能在QQ音乐等应用上早就出现了.我们今天来自己动手做一个自己的听歌 ...
- 听歌识曲--用python实现一个音乐检索器的功能
作者:唯心不易 字体:[增加 减小] 类型:转载 时间:2016-11-15 我要评论 本篇文章中主要介绍了用python实现一个音乐检索器,类似于QQ音乐的摇一摇识曲,有兴趣的同学可以了解一下. 听 ...
最新文章
- 【周鸿祎:当下AI技术并不完善,存四大“冰点”】
- java jdk windows环境 下载安装配置环境变量
- Spring MVC_HandlerInterceptorAdapter的使用
- [Mummy Maze] 宽度优先搜索
- equals方法的重写
- 安杰文高等计算机与生产技术学校,法国留学院校推荐:安杰文高等计算机与生产技术学校...
- java kafka client_Kafka Client API 基本使用
- 鱼腥草可以随便吃吗?
- 通过VBA实现重复的PPT编辑操作
- 解决win7安装梦幻桌面后不能使用,成灰色的问题
- 华为android 驱动安装失败,华为手机驱动出现安装失败的问题怎样解决?
- 关于python搜题的软件哪个好_搜题软件哪个更好?
- 【全是干货!伸手党福利】通过银行卡号判断出所属银行信息
- LeetCode通关:听说链表是门槛,这就抬脚跨门而入
- uni-app获取当前时间日期及之后7天和星期几
- GICv3_LPI机制
- ohci之usb_submit_urb
- 微信小程序 - 引入并使用 Fly.js 请求库(超级详细的教程及运行示例)提供 Fly.js 源码源文件下载,贴心的配置示例及注释,优雅快速的发起 http 网络请求
- 有关数据包拓展基础知识
- [数据结构] UVa1471 Defense Lines 防线
热门文章
- 电脑上既好看又好用的便签软件推荐
- 几个互联网项目管理软件
- 开机动画适配方案_修改开机动画教程
- oracle 12C 创建用户失败 解决方案
- 全网最详细官网一键换肤教程
- Xcode 8 size class
- 山东计算机考研909,山东大学2018年计算机考研909数据结构考试大纲
- linux 配置局域网内部www服务器,局域网内部邮件服务器搭建方法
- 电脑计算机为什么不是有效程序,电脑提示“不是有效的win32应用程序”是什么原因【解决方法】...
- Spring Boot 2.1.2配置文件参考配置项官方谷歌翻译版本