目录

1.首页访问

2.解析各类歌手url

3.访问刚刚获取到的五大分类里面的链接,进入到每类歌手的界面

4.请求每个字母的链接,获取到对应的歌手列表,获取歌手信息



网易云音乐的网址:https://music.163.com/

1.首页访问

我们的需求是要爬取网易云音乐的所有歌手,点击歌手,

得到接口:https://music.163.com/discover/artist

这里有个问题需要注意一下,我们注意到当我们在网页上点击歌手之后,网址是https://music.163.com/#/discover/artist

但是我们写好代码请求这个页面的时候是获取不到的,所以我们请求的接口应该把中间的那个#去掉,写成:https://music.163.com/discover/artist

# 首页访问
url = 'https://music.163.com/discover/artist'
headers = {'user-agent': "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"}
response = requests.get(url=url, headers=headers)
content = response.content.decode('utf-8')
with open('wangyiyun.html', 'w', encoding='utf-8') as fp:fp.write(content)

2.解析各类歌手url

首先我们看到歌手先有五种分类:华语,欧美,日本,韩国,其他

在前端页面都被写在class="blk"的div标签里面

先把这几类下面的每种链接都获取出来

我们可以看到链接到放到每一个div>ul>li>a:href

但是a标签href里面的标签不完整,需要拼接一下

链接格式应该是:‘https://music.163.com’+‘/discover/artist/cat?id=1001’

代码实现如下所示:

# 解析各类歌手url
tree = etree.HTML(content)
group_list = tree.xpath('//div[@class="blk"]')
print(len(group_list))
for group in group_list:# 歌手分类group_name = group.xpath('.//a/text()')# print(group_name)# 链接group_link = group.xpath('.//a/@href')# print(group_link)for i, j in zip(group_name, group_link):# 歌手地址link = 'https://music.163.com' + j

3.访问刚刚获取到的五大分类里面的链接,进入到每类歌手的界面

在这里我们以华语男歌手为例,可以看到页面上展示出来的歌手肯定不全,上面有一栏写着热门,A.B.C.D........

我们把A.B.C.D......这些都遍历出来,就可以完整的爬取到歌手了

打开F12分析一下界面

(1)可以看到A.B.C.D.....对应的是class="n-ltlst f-cb"的ul标签下面的li元素

但是我们不需要获取热门里面的内容,所以要把第一个li去掉

这里有两种方法:pop(0) ; xpath的位谓语position()>1进行限制

(2)获取每个字母下面的链接:

很容易看见是在上面找的li元素的a标签的href属性里面

链接地址同样也需要拼接

代码实现如下:

singer_content = requests.get(link).content.decode('utf-8')tree = etree.HTML(singer_content)singer_url = tree.xpath('//ul[@class="n-ltlst f-cb"]/li[position()>1]/a/@href')print(singer_url)for url in singer_url:full_url = 'https://music.163.com' + urlprint(full_url)

4.请求每个字母的链接,获取到对应的歌手列表,获取歌手信息

每一个歌手的信息都写在class="m-sgerlist"的div标签的ul>li标签

歌手的名字都在div>ul>li>p>a>text()

代码实现:

singer_info = requests.get(full_url).content.decode('utf-8')
tree = etree.HTML(singer_info)
li_list = tree.xpath('//div[@class="m-sgerlist"]/ul/li/a/text()')
for li in li_list:print(li)

网易云音乐的所有歌手列表相关推荐

  1. 网易云音乐歌单详情列表爬虫破解

    这次我跟大家分享的是关于爬虫加密破解的技术! 由于工作开发的需求,后台需要爬取网易云歌单详情页面(http://music.163.com/#/playlist?id=867413461)的歌单歌曲列 ...

  2. 使用scrapy创建一个项目爬取网易云音乐的所有歌手的相关资料

    1.创建一个项目 scrapy startproject 项目名称 我的项目叫Neteasy_music,所以命令是scrapy startproject Neteasy_music 2.创建一个爬虫 ...

  3. 如何利用python爬虫获取网易云音乐某个歌手简介_Python 爬虫获取网易云音乐歌手信息...

    今天就先带大家爬取网易云音乐下的歌手信息并把数据保存下来. 爬取结果 环境 语言:Python 工具:Pycharm 导包 BeautifulSoup:用来解析源码,提取需要的元素. selenium ...

  4. 爬取网易云音乐某个歌手的全部歌曲的歌词

    网易云音乐的网页大多都是js加载出来,我们无法直接通过解析网页来获取歌词,本文讲解如何通过网易提供的API和相应的爬虫技术下载某个歌手全部歌曲的歌词. 网易云音乐的歌词是通过js加载的,无法通过页面直 ...

  5. 网易云音乐(一)爬取全部歌手及歌手id

    动听的音乐,走心的评论. 总会使人不断的遐想... 本系列将爬取分析网易云音乐最动听的音乐,最走心的评论. 本次爬取网易云音乐的所以歌手及歌手id. 一.网页分析 1.标签 通过点击左边已经分好类的标 ...

  6. python爬取网易云音乐生成王力宏歌曲词云

    python爬取网易云音乐生成王力宏歌曲词云 # -*- coding:utf-8 -*- # 网易云音乐,通过歌手id生成词云 import requests import sys,re,os fr ...

  7. python3 xpath_Python3使用Xpath解析网易云音乐歌手页面

    Xpath最初被设计用来搜寻XML文档,但它同样适用于HTML文档的搜索.通过简洁明了的路径选择表达式,它提供了强大的选择功能:同时得益于其内置的丰富的函数,它可以匹配和处理字符串.数值.时间等数据格 ...

  8. Python3使用Xpath解析网易云音乐歌手页面

    Xpath最初被设计用来搜寻XML文档,但它同样适用于HTML文档的搜索.通过简洁明了的路径选择表达式,它提供了强大的选择功能:同时得益于其内置的丰富的函数,它可以匹配和处理字符串.数值.时间等数据格 ...

  9. php 获取字符串首歌,PHP爬虫 网易云音乐歌手和热门歌曲信息抓取

    序章 PM最近问我要网易云的歌手的热门歌曲的信息,作为数据分析.说起网络爬虫我们都不陌生,我们分析网站的HTML的格式和URL的通用格式来写相应的算法.然后请求对应的URL来获取HTML字符串,因此总 ...

  10. 用爬虫获取网易云音乐热门歌手评论数

    转载请注明作者和出处:http://blog.csdn.net/Monkey_D_Newdun 运行平台:Windows 10 IDE:Pycharm Python版本:3.6.0 浏览器:Chrom ...

最新文章

  1. 在项目中寻找代码的坏味道(命名)
  2. 马云都退休20天了,2019年剩下不到100天了:你还没掌握Python 编程思维吗?
  3. 如何隐晦地表达“滚”?
  4. [CareerCup] 8.7 Chat Server 聊天服务器
  5. 云图说|华为云自研云数据库GaussDB NoSQL,兼容多款NoSQL接口的数据库服务
  6. Webb.WAVE项目开发体会与心得
  7. 远程修改服务器登录密码,远程服务器修改登录密码
  8. sqlite3 加密版本 下载_制作Sqlcipher+SM4加密的framework包(OC)
  9. 关于Universal-Image-Loader加载同一张图只成功一张的问题
  10. 关于iptables封禁国外ip的方法
  11. html个人网页完整代码模板,静态 html 个人主页 模板
  12. 听听股市的几个出了名的魔咒
  13. java语言中cpu数据_重塑云上的 Java 语言
  14. Aras Innovator: 自定义TOC目录,Form的基本过程
  15. problem 1148
  16. 斑马打印机(zebraZT410R-203dpi)打印RFID标签流程
  17. 彩色模型RGB,HSI,HSV,CMYK区分
  18. 干掉AlibabaProtect【windows10】
  19. BUUCTF-[2019红帽杯]SnakeDig the way
  20. Python自学教程

热门文章

  1. psp2000 M33 自制固件---恢复模式说明(基本所有版本都适用)
  2. 如何编译TrueCrypt源码
  3. 【基于JXTA的P2P应用开发】
  4. 锐起无盘工作站网卡配置
  5. 国网B接口调阅实时视频(INVITE)接口描述和消息示例
  6. 如何在Mac上轻松使用SVN
  7. 谁说菜鸟不会数据分析
  8. RADIUS服务器的演变过程
  9. jquery实现上下左右键盘监听_初识 jquery.simulate.js 模拟键盘事件
  10. 苹果7系统更新12无服务器,别再为苹果手机无法更新系统犯难,这几种方式帮你解决!...