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. PyQt(Python+Qt)学习随笔:利用QWidget部件的palette以及ColorGroup、colorRole局部调整部件的特定范围颜色

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 在<PyQt(Python+Qt)学习随笔:QWidget部件的 ...

  2. 第11.16节 Python正则元字符“()”(小括号)与组(group)匹配模式

    一. 什么是组 关于组匹配模式,Python官网上说得比较简单,也没有这个名词,只有组这个名词,老猿查了比较多的资料和做了相关测试之后才理解. 组匹配模式,就是在匹配的正则表达式中使用小括号" ...

  3. 第14.1节 通过Python爬取网页的学习步骤

    如果要从一个互联网前端开发的小白,学习爬虫开发,结合自己的经验老猿认为爬虫学习之路应该是这样的: 一. 了解HTML语言及css知识 这方面的知识请大家通过w3school 去学习,老猿对于html总 ...

  4. PyQt(Python+Qt)学习随笔:QAbstractItemView的verticalScrollMode和horizontalScrollMode属性

    老猿Python博文目录 老猿Python博客地址 一.概述 verticalScrollMode和horizontalScrollMode属性用于控制视图如何在垂直方向和水平方向滚动内容.滚动可以按 ...

  5. 精尽Spring MVC源码分析 - 调式环境搭建

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  6. SpringBoot快速入门(实战篇一)

    SpringBoot快速入门(一) 一SpringBoot简介 1.spring开发经历的阶段 Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 ...

  7. Windows远程报错:由于没有远程桌面授权服务器可以提供许可证,远程会话被中断

    故障原因:Windowsserver超过两人的远程连接是收费的,有120天免费试用期,超过这个时间再连接就会报错. 解决方法一: 进行续费 解决方法二: 1,在运行里运行 mstsc /v:ip    ...

  8. Spring Cloud Ribbon之URL重构(三)

    接着前面的说,前两篇中分析了解析和动态服务列表的获取,这两步完成后那接下来要做的事就是重组解析后的URL路径和发起通信了,这一步完成应该是在前面分析的RibbonLoadBalancerClient. ...

  9. burpsuite无法拦截本地流量

    参考文章链接:https://blog.csdn.net/tb_youth/article/details/103436796?utm_medium=distribute.pc_relevant.no ...

  10. 海选与包装,Python中常用的两个高阶函数(讲义)

    一.filter(function, iterable) - 过滤("海选") # 判断落在第一象限的点[(x1, y1), (x2, y2)...] points = [(-1, ...