闲聊的时候,觉得,想写个爬虫,爬下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

Rank.png

IMG20191126_212518.png

python听歌识曲爬虫_【python爬虫】 爬云音乐我和xxx共同听过的歌曲相关推荐

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

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

  2. python指纹识别算法_shazam听歌识曲算法解析+python实现-2 生成指纹

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

  3. 下一代听歌识曲技术——从信号处理到深度学习

    音乐丰富我们的生活:音乐传达人类的情感:音乐表达人类的艺术.人类文明的进程中离不开音乐这个载体,音乐也离不开人类的真情创作.在听到好听却没听过的歌曲时,如何快速准确得到该歌曲的歌名成为当务之急.Liv ...

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. Windows PE 第八章 延迟加载导入表
  2. TI C6000DSP上TCP/IP协议栈的实现
  3. oracle触发器修改同一张表,oracle触发器中对同一张表进行更新再查询时,需加自制事务...
  4. SAP Commerce Cloud 的代码仓库
  5. 函数函数sigaction、signal
  6. C/C++ OpenCV之Scharr边缘检测
  7. 漫步凸分析六——凸集的相对内点
  8. Java开发者需要掌握的基础知识
  9. modelandview为null的原因_一千个不用 Null 的理由!
  10. 爆牙齿的世界杯日记(忆)。
  11. 【Oracle】手工建库
  12. 网易云音乐android变臃肿,网易云音乐,你变成了我最讨厌的模样
  13. php页面增加js代码,php刷新当前页面_php js实现页面数据刷新的代码
  14. 如何用计算机算十进制,计算器怎么,计算机是怎么转换二进制为十进制的
  15. 传智杯第四届初赛 B小卡与质数2
  16. 【技术思路】极客时间-左耳听风-开篇词1
  17. mac mysql 1055_Mysql 错误“1055”
  18. 【解决】ubuntu桌面无法进入问题
  19. ar面部识别_AR面部识别有什么品牌?
  20. 充分必要条件与C语言,充分条件与必要条件知识点总结,高中数学充分条件与必要条件知识点总结...

热门文章

  1. 这些年,微信产品经理做过的无奈妥协。
  2. 转:理想主义终结年代的七种兵器
  3. 计算机未连接到网络,电脑一直提示未连接到internet怎么办?
  4. git bash无法复制和黏贴
  5. Android studio 模拟器启动黑屏解决办法
  6. CF1400:1490E、448B、1462FD、650A、1380B、1451C
  7. 点赋网络:网店详情页设计中应包含哪些设计元素
  8. 实用Chrome插件-OneTab
  9. Pycharm设置快捷键放大缩小字体
  10. pycharm离线安装中文插件