python听歌识曲爬虫_【python爬虫】 爬云音乐我和xxx共同听过的歌曲
闲聊的时候,觉得,想写个爬虫,爬下2个人共同听过的歌曲有哪些,然后一鼓作气,花了一个多小时,写了一个。支持最近一周和所有时间,需要用户没有关闭听歌排行显示
How to start
使用到的工具是Selenium一个web自动化测试工具,提供IDE以及插件多种方式。python下安装
pip install selenium
chromedriver.exe 下载对应Chrome版本的driver.exe,仓库带了一份Chrome version 78的driver.exe
代码不多,60行,我就直接贴代码了。
python main.py
# -*- coding:utf-8 -*-
from enum import Enum
from time import sleep
from selenium import webdriver
import selenium.webdriver.support.ui as ui
import sys
reload(sys)
sys.setdefaultencoding('utf8')
def get_song_rank_list(url, songs_time):
print("\n-------------Start---------------")
driver = webdriver.Chrome(
executable_path='./drv/chromedriver')
# https://sites.google.com/a/chromium.org/chromedriver/downloads chrome对应版本driver
driver.get(url)
driver.switch_to.frame('g_iframe')
wait = ui.WebDriverWait(driver, 15)
data = ""
song_dict = {}
if wait.until(lambda driver: driver.find_element_by_class_name('g-bd')):
if songs_time == 1:
driver.find_element_by_id('rHeader').find_element_by_id('songsall').click()
sleep(3)
data += driver.find_element_by_id('rHeader').find_element_by_tag_name('h4').text
print(data)
lists = driver.find_element_by_class_name('m-record').find_elements_by_tag_name('li')
print("Top{}:".format(len(lists)))
for l in lists:
name = (l.find_element_by_tag_name('b').text).decode("utf-8")
singer = (l.find_element_by_class_name('s-fc8').text.replace('-', '')).decode("utf-8")
times = l.find_element_by_class_name('bg').get_attribute('style')
song = "{}, {}, {}".format(name, singer, times)
print(song)
song_dict[name] = song
return song_dict
def compare_song(dict1, dict2):
print("\n--------------------------------")
print("\n---->Same song between us")
for name, song in dict1.iteritems():
if name in dict2:
print(song)
print("---->End")
print("\n--------------------------------")
SONGS_WEEK = 0
SONGS_ALL = 1
if __name__ == '__main__':
girl = get_song_rank_list("https://music.163.com/#/user/songs/rank?id=288007045", SONGS_ALL)
boy = get_song_rank_list("https://music.163.com/#/user/songs/rank?id=39661960", SONGS_ALL)
compare_song(girl, boy)
Console
python听歌识曲爬虫_【python爬虫】 爬云音乐我和xxx共同听过的歌曲相关推荐
- python 听歌识曲_Shazam听歌识曲算法解析+python实现-3 检索歌曲
听歌识曲是如何工作的,看完这个你就懂啦! 使用的算法是<An Industrial-Strength Audio Search Algorithm>,部分算法借鉴了Github的dejav ...
- python指纹识别算法_shazam听歌识曲算法解析+python实现-2 生成指纹
听歌识曲是如何工作的,看完这个你就懂啦! 使用的算法是<An Industrial-Strength Audio Search Algorithm>,部分算法借鉴了Github的dejav ...
- 下一代听歌识曲技术——从信号处理到深度学习
音乐丰富我们的生活:音乐传达人类的情感:音乐表达人类的艺术.人类文明的进程中离不开音乐这个载体,音乐也离不开人类的真情创作.在听到好听却没听过的歌曲时,如何快速准确得到该歌曲的歌名成为当务之急.Liv ...
- python声音识别歌曲_听歌识曲!python这个骚操作可以了解一下!
音频指纹识别的目的是确定音频的数字"摘要".从而与音频样本进行比对得出它出自哪首歌曲,像现在QQ音乐.网易云音乐等各大音乐软件都有此功能,它根据歌曲的前两到五秒识别音乐歌名.今天我 ...
- python声音识别歌曲_听歌识曲--用python实现一个音乐检索器
听歌识曲,顾名思义,用设备"听"歌曲,然后它要告诉你这是首什么歌.而且十之八九它还得把这首歌给你播放出来.这样的功能在QQ音乐等应用上早就出现了.我们今天来自己动手做一个自己的听歌 ...
- python 听歌识曲_听歌识曲--用python实现一个音乐检索器
作者 | 唯心不易@博客园 http://www.cnblogs.com/chuxiuhong/p/6063602.html 听歌识曲,顾名思义,用设备"听"歌曲,然后它要告诉你这 ...
- python声音识别歌曲_听歌识曲--用python实现一个音乐检索器的功能
听歌识曲,顾名思义,用设备"听"歌曲,然后它要告诉你这是首什么歌.而且十之八九它还得把这首歌给你播放出来.这样的功能在QQ音乐等应用上早就出现了.我们今天来自己动手做一个自己的听歌 ...
- 听歌识曲--用python实现一个音乐检索器
听歌识曲,顾名思义,用设备"听"歌曲,然后它要告诉你这是首什么歌.而且十之八九它还得把这首歌给你播放出来.这样的功能在QQ音乐等应用上早就出现了.我们今天来自己动手做一个自己的听歌 ...
- 听歌识曲--用python实现一个音乐检索器的功能
作者:唯心不易 字体:[增加 减小] 类型:转载 时间:2016-11-15 我要评论 本篇文章中主要介绍了用python实现一个音乐检索器,类似于QQ音乐的摇一摇识曲,有兴趣的同学可以了解一下. 听 ...
最新文章
- Windows PE 第八章 延迟加载导入表
- TI C6000DSP上TCP/IP协议栈的实现
- oracle触发器修改同一张表,oracle触发器中对同一张表进行更新再查询时,需加自制事务...
- SAP Commerce Cloud 的代码仓库
- 函数函数sigaction、signal
- C/C++ OpenCV之Scharr边缘检测
- 漫步凸分析六——凸集的相对内点
- Java开发者需要掌握的基础知识
- modelandview为null的原因_一千个不用 Null 的理由!
- 爆牙齿的世界杯日记(忆)。
- 【Oracle】手工建库
- 网易云音乐android变臃肿,网易云音乐,你变成了我最讨厌的模样
- php页面增加js代码,php刷新当前页面_php js实现页面数据刷新的代码
- 如何用计算机算十进制,计算器怎么,计算机是怎么转换二进制为十进制的
- 传智杯第四届初赛 B小卡与质数2
- 【技术思路】极客时间-左耳听风-开篇词1
- mac mysql 1055_Mysql 错误“1055”
- 【解决】ubuntu桌面无法进入问题
- ar面部识别_AR面部识别有什么品牌?
- 充分必要条件与C语言,充分条件与必要条件知识点总结,高中数学充分条件与必要条件知识点总结...