本文实例讲述了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实现提取谷歌音乐搜索结果的方法相关推荐

  1. 音乐翻唱软件测试初学者,音乐APP听歌识曲大评测,QQ音乐独家“翻唱识别”领跑...

    原标题:音乐APP听歌识曲大评测,QQ音乐独家"翻唱识别"领跑 不知道大家有没有遇到这样一种情况,看综艺时,突然听到一首很好听的歌曲,但是就是不知道歌名,在心里急得呀. 每每遇到这 ...

  2. python 听歌识曲_Shazam听歌识曲算法解析+python实现-3 检索歌曲

    听歌识曲是如何工作的,看完这个你就懂啦! 使用的算法是<An Industrial-Strength Audio Search Algorithm>,部分算法借鉴了Github的dejav ...

  3. python 听歌识曲_听歌识曲--用python实现一个音乐检索器

    作者 | 唯心不易@博客园 http://www.cnblogs.com/chuxiuhong/p/6063602.html 听歌识曲,顾名思义,用设备"听"歌曲,然后它要告诉你这 ...

  4. python听歌识曲爬虫_Python爬取网易云音乐热门评论的搜索结果-阿里云开发者社区...

    网易云音乐评论爬虫(三):爬取歌曲的全部评论 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条.现在我就来分享一下如何爬取网易云音乐歌曲的 ...

  5. python听歌识曲爬虫_【python爬虫】 爬云音乐我和xxx共同听过的歌曲

    闲聊的时候,觉得,想写个爬虫,爬下2个人共同听过的歌曲有哪些,然后一鼓作气,花了一个多小时,写了一个.支持最近一周和所有时间,需要用户没有关闭听歌排行显示 How to start 使用到的工具是Se ...

  6. 谷歌宣布搜索引擎多个新 AI 功能,听歌识曲 15 秒完成匹配

    技术编辑:芒果果丨发自 思否编辑部 公众号:SegmentFault 你有没有哼着一首歌却怎么也想不起歌名的情况?Google 发布了一些搜索功能的更新,其中就有一个"听歌识曲"功 ...

  7. ipad分屏功能怎么用_QQ音乐的听歌识曲功能怎么用?

    提到听歌识曲功能大都想到QQ音乐,但是QQ音乐的听歌识曲功能在哪里呢?怎么使用呢?别急,小编这就告诉大家. 准备:手机.QQ音乐APP.WIFI或者流量 第一步:打开下载好的QQ音乐 第二步,点击右上 ...

  8. python声音识别歌曲_听歌识曲!python这个骚操作可以了解一下!

    音频指纹识别的目的是确定音频的数字"摘要".从而与音频样本进行比对得出它出自哪首歌曲,像现在QQ音乐.网易云音乐等各大音乐软件都有此功能,它根据歌曲的前两到五秒识别音乐歌名.今天我 ...

  9. 听歌识曲--用python实现一个音乐检索器

    听歌识曲,顾名思义,用设备"听"歌曲,然后它要告诉你这是首什么歌.而且十之八九它还得把这首歌给你播放出来.这样的功能在QQ音乐等应用上早就出现了.我们今天来自己动手做一个自己的听歌 ...

  10. 听歌识曲--用python实现一个音乐检索器的功能

    作者:唯心不易 字体:[增加 减小] 类型:转载 时间:2016-11-15 我要评论 本篇文章中主要介绍了用python实现一个音乐检索器,类似于QQ音乐的摇一摇识曲,有兴趣的同学可以了解一下. 听 ...

最新文章

  1. 【周鸿祎:当下AI技术并不完善,存四大“冰点”】
  2. java jdk windows环境 下载安装配置环境变量
  3. Spring MVC_HandlerInterceptorAdapter的使用
  4. [Mummy Maze] 宽度优先搜索
  5. equals方法的重写
  6. 安杰文高等计算机与生产技术学校,法国留学院校推荐:安杰文高等计算机与生产技术学校...
  7. java kafka client_Kafka Client API 基本使用
  8. 鱼腥草可以随便吃吗?
  9. 通过VBA实现重复的PPT编辑操作
  10. 解决win7安装梦幻桌面后不能使用,成灰色的问题
  11. 华为android 驱动安装失败,华为手机驱动出现安装失败的问题怎样解决?
  12. 关于python搜题的软件哪个好_搜题软件哪个更好?
  13. 【全是干货!伸手党福利】通过银行卡号判断出所属银行信息
  14. LeetCode通关:听说链表是门槛,这就抬脚跨门而入
  15. uni-app获取当前时间日期及之后7天和星期几
  16. GICv3_LPI机制
  17. ohci之usb_submit_urb
  18. 微信小程序 - 引入并使用 Fly.js 请求库(超级详细的教程及运行示例)提供 Fly.js 源码源文件下载,贴心的配置示例及注释,优雅快速的发起 http 网络请求
  19. 有关数据包拓展基础知识
  20. [数据结构] UVa1471 Defense Lines 防线

热门文章

  1. 电脑上既好看又好用的便签软件推荐
  2. 几个互联网项目管理软件
  3. 开机动画适配方案_修改开机动画教程
  4. oracle 12C 创建用户失败 解决方案
  5. 全网最详细官网一键换肤教程
  6. Xcode 8 size class
  7. 山东计算机考研909,山东大学2018年计算机考研909数据结构考试大纲
  8. linux 配置局域网内部www服务器,局域网内部邮件服务器搭建方法
  9. 电脑计算机为什么不是有效程序,电脑提示“不是有效的win32应用程序”是什么原因【解决方法】...
  10. Spring Boot 2.1.2配置文件参考配置项官方谷歌翻译版本