Python安装文件可以直接去官网上下载 Python官网链接
在我们安装好python环境之后,需要安装一些爬虫时用到的库,最基本的有requests库,BeautifulSoup库
使用pip命令可以安装这两个库,点击链接可以看到添加pip命令到dos中的操作:pip命令添加到dos命令集
安装requests库命令:pip install requests
安装BeautifluSoup库命令:pip install bs4
如果显示当前pip版本过低,可以通过 pip install --upgrade pip命令来更新pip
安装后如果显示Successfully installed …等,表示已经安装成功,如果显示了很多红色的错误提示,则可以将刚才的更新命令重新执行几次,会成功的。

接下来分析网易云的歌手界面

URL中的id后面的属性值对应不同的歌手类型,其对应关系如下所示

id 对应歌手类型
1001 华语男歌手
1002 华语女歌手
1003 华语组合/乐队
2001 欧美男歌手
2002 欧美女歌手
2003 欧美组合/乐队
6001 日本男歌手
6002 日本女歌手
6003 日本组合/乐队
7001 韩国男歌手
7002 韩国女歌手
7003 韩国组合/乐队
4001 其他男歌手
4002 其他女歌手
4003 其他组合/乐队

而在每一个歌手类型界面,通过26个字母与其他进行分组

分组对应的是initial的属性值,其对应关系如下所示

initial 对应分组
A 65
B 66
Z 90
其他 0

可以看到其具有明显的对应关系

根据以上的,我们的各个URL就确定了,接下来我们在每个界面上爬取歌手的名字与歌手的id
右键点击检查,查看我们的界面html代码

可以看到,歌手的信息都是存储在ul标签的li标签下,我们只需要先得到ul标签,再将li标签里面的数据爬取出来,就可以得到我们需要的数据
可以看到该ul标签中class属性值是m-cvrlst m-cvrlst-5 f-cb, id属性是m-artist-box
在给ul标签的li标签的a标签中我们可以得到该歌手的id和姓名

其class属性值为nm nm-icn f-thide s-fc0

具体代码如下所示

import csv
import requests
from bs4 import BeautifulSoupheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'
}key_ids = {1001:"华语男歌手", 1002:"华语女歌手",1003:"华语组合或乐队", 2001:"欧美男歌手", 2002:"欧美女歌手", 2003:"欧美组合或乐队",6001:"日本男歌手",6002:"日本女歌手",6003:"日本组合或乐队",7001:"韩国男歌手",7002:"韩国女歌手",7003:"韩国组合或乐队",4001:"其他男歌手",4002:"其他女歌手", 4003:"其他组合或乐队"}ids = [1001, 1002, 1003, 2001, 2002, 2003, 6001, 6002, 6003, 7001, 7002, 7003, 7004]initials = [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 0]base_url = "https://music.163.com/discover/artist/cat?id={}&initial={}"for id in key_ids.keys():with open(file = r'{}.csv'.format(key_ids[id]), encoding = "utf-8", mode = "a") as f:writer = csv.writer(f, lineterminator='\n')writer.writerow(["歌手ID", "歌手姓名"])f.close()print("正在爬取{}的信息".format(key_ids[id]))for initial in initials:try:with open(file=r'{}.csv'.format(key_ids[id]), encoding="utf-8", mode="a") as f:url = base_url.format(str(id), str(initial))response = requests.get(url, headers = headers)response.encoding = "utf-8"soup = BeautifulSoup(response.text, "html.parser")ul = soup.find("ul", class_ = "m-cvrlst m-cvrlst-5 f-cb")a_s = ul.find_all("a", class_ = "nm nm-icn f-thide s-fc0")for a in a_s:singer_id = a['href'].split('=')[1]singer_name = a.textwriter = csv.writer(f, lineterminator='\n')writer.writerow((singer_id, singer_name))print("正在写入{}{}的信息".format(key_ids[id],singer_name))f.close()except Exception as e:print(e)continue

生成的csv文件与py文件在同一个文件夹下

python爬虫爬取网易云音乐歌手信息相关推荐

  1. python爬虫爬取网易云音乐歌曲_Python网易云音乐爬虫进阶篇

    image.png 年前写过一篇爬网易云音乐评论的文章,爬不了多久又回被封,所以爬下来那么点根本做不了什么分析,后面就再改了下,加入了多线程,一次性爬一个歌手最热门50首歌曲的评论,算是进阶版了- 思 ...

  2. python网易云_用python爬虫爬取网易云音乐

    标签: 使用python爬虫爬取网易云音乐 需要使用的模块 只需要requests模块和os模块即可 开始工作 先去网易云音乐网页版找一下你想要听的歌曲点击进去.按键盘F12打开网页调试工具,点击Ne ...

  3. python爬虫----爬取网易云音乐

    使用python爬虫爬取网易云音乐 目录 使用python爬虫爬取网易云音乐 需要使用的模块 开始工作 运行结果 需要使用的模块 只需要requests模块和os模块即可 开始工作 先去网易云音乐网页 ...

  4. Python爬虫—爬取网易云音乐【热歌榜】歌曲的精彩评论(写入txt文本文件或者MySQL数据库)

      最近在学Python爬虫,看了Blibili爬取网易云音乐评论的视频,视频中是将一首歌的评论存入json文件,我在此代码的基础上扩展了三点:     1.爬取热歌榜200首歌曲的精彩评论:     ...

  5. python爬虫爬取网易云音乐下载_Python爬虫实践-网易云音乐!没有版权又如何!照样爬取!...

    1.前言 最近,网易的音乐很多听不到了,刚好也看到很多教程,跟进学习了一下,也集大全了吧,本来想优化一下的,但是发现问题还是有点复杂,最后另辟捷径,提供了简单的方法啊! 本文主要参考 python编写 ...

  6. python爬虫爬取网易云音乐歌曲_如何用爬虫获取网易云音乐歌单中的歌曲?

    --------------------------------- 泻药,以我抓取了307835首网易云音乐的歌单歌曲的经验,讲一下这个问题. 喜欢用Github的可以直接看我的项目源码,代码简单.具 ...

  7. python爬虫-爬取网易云音乐歌曲评论

    本文借鉴了@平胸小仙女的知乎回复 https://www.zhihu.com/question/36081767 以及@lyrichu的博客 https://www.cnblogs.com/lyric ...

  8. python爬虫No.1|爬取网易云音乐歌手的前50首歌曲ID及名字

    自学pythonのNo.5 引语 知识总结 Requests XPath 案例 曾经有这样的梗黑网易云音乐 实际上网易云是很不错的音乐软件之一.这个梗挺让我不舒服的,挫折谁都有,矫情没必要但对矫情之人 ...

  9. Python爬取网易云音乐歌手歌曲和歌单(爬虫)

    Python爬取网易云音乐歌手歌曲和歌单 是 仅供学习参考 Python爬取网易云音乐网易云音乐歌手歌曲和歌单,并下载到本地 ①找到要下载歌手歌曲的链接,这里用的是: https://music.16 ...

  10. python网络爬虫网易云音乐下载_python网络爬虫爬取网易云音乐

    #爬取网易云音乐 url="https://music.163.com/discover/toplist" #歌单连接地址 url2 = 'http://music.163.com ...

最新文章

  1. 400多家单位、30余万科研人员,10多年奋斗!北斗卫星核心器件实现100%国产!(附:北斗研发建设历程​)...
  2. springboot集成测试时@RunWith和@SpringBootTest爆红不能测试
  3. Redis 未授权访问缺陷可轻易导致系统被黑
  4. SAP Spartacus unit detail 页面显示后自动 focus 设置的原理
  5. 在asp.net中调用process.start执行程序
  6. nginx文件系统大小_Nginx 了解一下?
  7. 自建ca根证书_独立根CA的安装与证书申请
  8. 两个linux系统拷贝文件,两台linux文件拷贝
  9. 红孩子艰难求生 苏宁易购或伸援手
  10. 常用http状态码说明,status
  11. iOS开发--保存数据到本地
  12. 全球光伏产业战加剧:美国考虑对进口太阳能电池施加紧急关税
  13. Java API 帮助文档中英文版下载
  14. php根据键值排序,数组根据某个键值排序
  15. 信用评分模型详解(下)之 信用评分系统搭建
  16. js的unshift()的使用
  17. 解决OneDrive卸载后重新安装无法启动或闪退的问题
  18. APISpace 星座查询API
  19. 【巨杉数据库SequoiaDB】影像平台分布式最佳实践 内容管理平台分布式实践
  20. Neo4j ① <图论>图,节点,关系,属性<知识图谱和图库>图谱,图库,优势<基础>模块,应用场景,环境搭建,浏览器

热门文章

  1. 3G技术演进策略(cdma2000,UMTS)
  2. 非360手柄玩游戏视角颠倒的解决方案
  3. 紫书刷题记录 UVa1572 自组合
  4. STM32F103驱动无刷直流电机应用思路
  5. 搜狗实验室新闻数据文本分类深度学习案例 ———Tensorflow+CNN深度学习全流程(上)
  6. 简单理解时间同步和时钟同步
  7. livox_camera_calib的使用
  8. 从软件测试培训班出来之后找工作的经历,教会了我这五件事...
  9. word脚注全部放在最后一页(脚注变尾注)
  10. Codeforces Problem-705A Hulk