1. 虾米关服

在这里插入图片描述

用了5年多的音乐软件就这么说关就关了,确实让人心里不好受 ,虽然再去一个新的app里,让它们的算法熟悉你的喜好也不是很困难,可我还是习惯虾米的界面。虾米现在可以支持全方位的导出自己的歌单、收藏等,可毕竟是使用了那么久的听歌app,这么久时间的播放记录,是没办法导到其他app的,而且虾米是一个偏小众的听歌软件,它特有的听歌氛围和环境,是其他听歌软件没法儿比的,更何况虾米音乐的推荐算法也是深得人心。太难受了…赶紧保存最近的听歌记录,封存起来。

虾米只开放了最近1000条记录,应该是数据库只存了这么多吧…毕竟是被阿里巴巴抛弃放养的孩子…

2. 准备工作

首先需再在个人设置中勾上该选项:

在这里插入图片描述

勾上后听歌的记录才会公开,才可以被程序爬取到。

3. python代码

话不多说,直接上代码:
python==3.6.2
urllib==1.26.2
lxml==4.6.2
pandas版本随意

# -*- coding: utf-8 -*-
"""
Created on 2021/1/5 13:46 @author: Irvinfaith @email: Irvinfaith@hotmail.com
"""
from urllib.request import urlopen
from lxml import etree
import pandas as pd # 定义xpath
song_name_xpath = '//div[@class="song-name em"]/a/text()'
singer_xpath = '//div[@class="singers COMPACT"]/a[1]/text()'
album_xpath = '//div[@class="album"]/a[1]/text()'
duration_xpath = '//span[@class="duration"]/text()'
# 定义爬取总页数
total_page = 34 def crawl_recent(user_id):
song_name_list = []
singer_list = []
album_list = []
duration_list = []
for _ in range(total_page):
print(_)
url = f"https://www.xiami.com/list?page={_}&query=%7B%22userId%22%3A%22{user_id}%22%7D&scene=record&type=song"
page = urlopen(url).read().decode("utf-8", 'ignore')
parse = etree.HTML(page)
for _song_name, _singer, _album, _duration in zip(parse.xpath(song_name_xpath),
parse.xpath(singer_xpath),
parse.xpath(album_xpath),
parse.xpath(duration_xpath)):
song_name_list.append(str(_song_name))
singer_list.append(str(_singer))
album_list.append(str(_album))
duration_list.append(str(_duration)) recent_music = pd.DataFrame({"song name": song_name_list, "singer": singer_list, "album": album_list, "duration": duration_list})
return recent_music if __name__ == '__main__':
# 输入虾米用户id
recent_music = crawl_recent("12345678")
# recent_music.to_csv("D:/xiami_recent_1000.csv", index=0, encoding='utf-8')
recent_music.to_excel("D:/xiami_recent_1000.xlsx")

输入虾米用户id,执行就会输出最近的歌曲了

输出的结果:

在这里插入图片描述

总结

以上就是用python爬取虾米播放记录的代码过程
我是白白,一个喜欢学习喜欢编程的年轻人
想学习python的可以关注私信我哦~
欢迎小白、萌新、大佬加入我们
小白学习交流基地【(九七四)(七二四)(八九四)】

python 虾米停服了...用python爬取虾米最近播放的1000首歌的更多相关文章

  1. Python爬虫教程-13-爬虫使用cookie爬取登录后的页面(人人网)(下)

    Python爬虫教程-13-爬虫使用cookie爬取登录后的页面(下) 自动使用cookie的方法,告别手动拷贝cookie http模块包含一些关于cookie的模块,通过他们我们可以自动的使用co ...

  2. [Python爬虫] 使用 Beautiful Soup 4 快速爬取所需的网页信息

    [Python爬虫] 使用 Beautiful Soup 4 快速爬取所需的网页信息 2018-07-21 23:53:02 larger5 阅读数 4123更多 分类专栏: 网络爬虫   版权声明: ...

  3. Python爬虫小白入门(七)爬取豆瓣音乐top250

      抓取目标: 豆瓣音乐top250的歌名.作者(专辑).评分和歌曲链接 使用工具: requests + lxml + xpath. 我认为这种工具组合是最适合初学者的,requests比pytho ...

  4. Python使用urllib,urllib3,requests库+beautifulsoup爬取网页

    Python使用urllib/urllib3/requests库+beautifulsoup爬取网页 urllib urllib3 requests 笔者在爬取时遇到的问题 1.结果不全 2.'抓取失 ...

  5. Python网页解析库:用requests-html爬取网页

    Python网页解析库:用requests-html爬取网页 1. 开始 Python 中可以进行网页解析的库有很多,常见的有 BeautifulSoup 和 lxml 等.在网上玩爬虫的文章通常都是 ...

  6. 【个人】爬虫实践,利用xpath方式爬取数据之爬取虾米音乐排行榜

    实验网站:虾米音乐排行榜 网站地址:http://www.xiami.com/chart  难度系数:★☆☆☆☆ 依赖库:request.lxml的etree (安装lxml:pip install ...

  7. 服务器 Python服务停服、起服脚本

    近日,在阿里云服务器上部署了一个Python,Web框架为Tornado,服务器为Ubuntu 16.04. 服务的启动也十分的简单: python services.py 我是利用Xshell工具连 ...

  8. python爬虫实例,一小时上手爬取淘宝评论(附代码)

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 1 明确目的 通过访问天猫的网站,先搜索对应的商品,然后爬取它的评论数据. ...

  9. Python爬虫实战(2):爬取京东商品列表

    1,引言 在上一篇<Python爬虫实战:爬取Drupal论坛帖子列表>,爬取了一个用Drupal做的论坛,是静态页面,抓取比较容易,即使直接解析html源文件都可以抓取到需要的内容.相反 ...

随机推荐

  1. 第11.6节 Python正则表达式的字符串开头匹配模式及元字符“^”(插入符、脱字符)功能介绍

    符号"^"为插入符,也称为脱字符,在Python中脱字符表示匹配字符串的开头,即字符串的开头满足匹配模式的要求.这个功能有点类似搜索函数match,只是这是通过搜索模式来指定,而m ...

  2. 分布式计算框架-MapReduce 基本原理(MP用于分布式计算)

    hadoop最主要的2个基本的内容要了解.上次了解了一下HDFS,本章节主要是了解了MapReduce的一些基本原理. MapReduce文件系统:它是一种编程模型,用于大规模数据集(大于1TB)的并 ...

  3. MyBatis if 标签的坑,居然被我踩到了。。。

    事件的原因是这样的,需求是按条件查数据然后给前端展示就行了,写的时候想着挺简单的,不就是使用 MyBatis 动态 SQL 去查询数据吗? 现实还是很残酷的,等我写完上完 UAT 后,前端同学说根据s ...

  4. CSP-S 初赛最后的复习

    2020CSP-S 模拟赛1 3.一个圆形水池中等概率随机分布着四只鸭子,那么存在一条直径,使得鸭子全在直径一侧的概率是(). A.\(\frac 1{16}\) B.\(\frac 1{8}\) C ...

  5. MySQL技术内幕InnoDB存储引擎(五)——索引及其相关算法

    索引概述 索引太多可能会降低运行性能,太少就会影响查询性能. 最开始就要在需要的地方添加索引. 常见的索引: B+树索引 全文索引 哈希索引 B+树索引 B+树 所有的叶子节点存放完整的数据,非叶子节 ...

  6. MariaDB的安装及相关配置

    MariaDB的安装及相关配置 安装 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB systemctl start mar ...

  7. PCRE正则表达式语法

    字符 描述 \ 将下一个字符标记为一个特殊字符,或一个原义字符,或一个向后引用,或一个八进制转义符.例如,"\n"匹配一个换行符. ^ 匹配输入字符串的开始位置. $ 匹配输入字符 ...

  8. Day4 dict和set

    dict  -- dictionary    一组key的集合,包含key与value的对应.        Python内置的字典,在其他语言中称为map,使用key-value存储,具有极快的查找 ...

  9. Nginx(三):反向代理,负载均衡

    环境准备   配置反向代理,负载均衡,动静分离需要的必备环境,JDK,2个tomcat开启8080和8081端口. 安装jdk [root@localhost ~]# rpm -qa|grep jav ...

  10. create-react-app 基于ts项目,使用react-router-dom搭建项目

    准备工作 来个react项目 create-react-app 基于TS的项目 ts项目安装后 删除node_modules,重新 yarn install, 不然jsx会报错 安装React-rou ...