本文介绍用Python爬取网易云音乐全部歌手信息,歌手的id和歌手的名字。

这里我们来看一下歌手周杰伦的id号:

通过浏览器的检查元素,我们可以查看周杰伦的id号为6452。

要想爬取这些数据,就必须在使用requests库时设置好请求的头部(headers)特别是cookie。

接下来开始分析:

首先是找到网易云音乐歌手网页:

在左侧我们可以看到歌手的分类,每个分类都对应一个url的id参数,同一类歌手又通过歌手名字的首字母进行排序,对应url中的initial参数。这里以华语歌手,A打头的网页的url为例。

url='http://music.163.com/#/discover/artist/cat?id=1001&initial=65'

因此我们只需要改变网址中的id和initial参数的值便可以将网易云音乐上所有的歌手信息爬取下来。

ls1 = [1001, 1002, 1003, 2001, 2002, 2003, 6001, 6002, 6003, 7001, 7002, 7003, 4001, 4002, 4003]    # id的值
ls2 = [-1, 0, 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] # initial的值
for i in ls1:for j in ls2:url = 'http://music.163.com/discover/artist/cat?id=' + str(i) + '&initial=' + str(j)

这里我们创建两个列表来存储id和initial的值,从而构建爬取全部歌手信息的网页url。

接着我们开始设置请求的头(即headers的值),打开浏览器的开发者工具栏(鼠标右键点击检查),点击network,再点击Doc,找到原始请求返回的文件(即网址对应的文件),点击headers,里面有Request Headers,把里面的值全部设置为请求的头部的值。

下面具体来看一下请求的头部的设置,一定不能漏了cookie的值。

headers={'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9','Connection': 'keep-alive','Cookie': '_iuqxldmzr_=32; _ntes_nnid=0e6e1606eb78758c48c3fc823c6c57dd,1527314455632; ''_ntes_nuid=0e6e1606eb78758c48c3fc823c6c57dd; __utmc=94650624; __utmz=94650624.1527314456.1.1.''utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); WM_TID=blBrSVohtue8%2B6VgDkxOkJ2G0VyAgyOY;'' JSESSIONID-WYYY=Du06y%5Csx0ddxxx8n6G6Dwk97Dhy2vuMzYDhQY8D%2BmW3vlbshKsMRxS%2BJYEnvCCh%5CKY''x2hJ5xhmAy8W%5CT%2BKqwjWnTDaOzhlQj19AuJwMttOIh5T%5C05uByqO%2FWM%2F1ZS9sqjslE2AC8YD7h7Tt0Shufi''2d077U9tlBepCx048eEImRkXDkr%3A1527321477141; __utma=94650624.1687343966.1527314456.1527314456''.1527319890.2; __utmb=94650624.3.10.1527319890','Host': 'music.163.com','Referer': 'http://music.163.com/','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/66.0.3359.181 Safari/537.36'}

最后构造一个获取这些信息的函数即可。

# 构造函数获取歌手信息
def get_artists(url):headers={'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9','Connection': 'keep-alive','Cookie': '_iuqxldmzr_=32; _ntes_nnid=0e6e1606eb78758c48c3fc823c6c57dd,1527314455632; ''_ntes_nuid=0e6e1606eb78758c48c3fc823c6c57dd; __utmc=94650624; __utmz=94650624.1527314456.1.1.''utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); WM_TID=blBrSVohtue8%2B6VgDkxOkJ2G0VyAgyOY;'' JSESSIONID-WYYY=Du06y%5Csx0ddxxx8n6G6Dwk97Dhy2vuMzYDhQY8D%2BmW3vlbshKsMRxS%2BJYEnvCCh%5CKY''x2hJ5xhmAy8W%5CT%2BKqwjWnTDaOzhlQj19AuJwMttOIh5T%5C05uByqO%2FWM%2F1ZS9sqjslE2AC8YD7h7Tt0Shufi''2d077U9tlBepCx048eEImRkXDkr%3A1527321477141; __utma=94650624.1687343966.1527314456.1527314456''.1527319890.2; __utmb=94650624.3.10.1527319890','Host': 'music.163.com','Referer': 'http://music.163.com/','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/66.0.3359.181 Safari/537.36'}r = requests.get(url, headers=headers)csvfile = open('/home/zhiying/文档/music_163_artists(1).csv', 'a')    # 文件存储的位置writer = csv.writer(csvfile)writer.writerow(('artist_id', 'artist_name'))soup = BeautifulSoup(r.text, 'html5lib')for artist in soup.find_all('a', attrs={'class': 'nm nm-icn f-thide s-fc0'}):artist_name = artist.stringartist_id = artist['href'].replace('/artist?id=', '').strip()try:writer.writerow((artist_id, artist_name))except Exception as msg:print(msg)

至此利用Python爬取网易云音乐全部歌手信息的爬虫就完成了,这里我把信息存储成了csv 文件。来看一下结果:

大家在爬取的时候有啥问题,欢迎在评论区留言,我会及时为大家解答。

查看完整代码请上我的Github

也可以点击这里下载代码和歌手信息

2018年9月18日更新:最近发现一种新的爬取方法,具体请参考这篇文章!

欢迎大家加爬虫QQ群:565712652讨论!

用Python爬取网易云音乐全部歌手信息(歌手id和歌手名字)相关推荐

  1. python爬取网易云音乐歌曲评论信息

    网易云音乐是广大网友喜闻乐见的音乐平台,区别于别的音乐平台的最大特点,除了"它比我还懂我的音乐喜好"."小清新的界面设计"就是它独有的评论区了------各种故 ...

  2. python爬取网易云音乐热评_python爬取网易云音乐评论

    本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...

  3. python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜 python爬取网易云音乐热歌榜实例代码...

    想了解python爬取网易云音乐热歌榜实例代码的相关内容吗,FXL在本文为您仔细讲解python爬取网易云音乐热歌榜的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:python,网易热歌榜 ...

  4. python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜实例代码

    首先找到要下载的歌曲排行榜的链接,这里用的是: https://music.163.com/discover/toplist?id=3778678 然后更改你要保存的目录,目录要先建立好文件夹,例如我 ...

  5. Python爬取网易云音乐热歌榜(爬虫)

    Python爬取网易云音乐热歌榜歌曲,并下载到本地 找到要下载歌曲排行榜的链接,这里用的是: https://music.163.com/discover/toplist?id=3778678 然后更 ...

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

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

  7. python爬取网易云音乐排行榜数据

    python爬取网易云音乐排行榜歌曲及评论 网易云音乐排行榜歌曲及评论爬取 主要注意问题:selenium 模拟登录.iframe标签定位.页面元素提取. 在利用selenium定位元素并取值的过程中 ...

  8. [爬虫]Python爬取网易云音乐搜索并下载歌曲!

    Python爬取网易云音乐搜索并下载歌曲! 文章目录 Python爬取网易云音乐搜索并下载歌曲! 1.准备工作 2."实地"观察 3.开始码代码! 4.搜索并下载 结束语 1.准备 ...

  9. 用Python爬取网易云音乐歌曲

    前天给大家分享了用Python网络爬虫爬取了网易云歌词,在文尾说要爬取网易云歌曲,今天小编带大家一起来利用Python爬取网易云音乐,分分钟将网站上的音乐down到本地. 跟着小编运行过代码的筒子们将 ...

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

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

最新文章

  1. 第三章:3.栈和队列 -- 栈与递归的实现
  2. Tomcat 处理 HTTP 请求源码分析(上)【转】
  3. java获取注解信息_java 自定义注解,获取注解信息
  4. SharePoint Search之(七)Search result- 结果源
  5. (转)yi_meng linux 下 ifcfg-eth0 配置 以及ifconfig、ifup、ifdown区别
  6. Python 基础入门--简介和环境配置
  7. 【十四】jvm 性能调优实例
  8. JBoss4.2.3GA 配置 Quartz
  9. Java实现pow共识算法_POW+POS混合共识算法
  10. 重温数据结构——(1)
  11. ToLua 入门04_CallLuaFunction
  12. @MapperScan和@Mapper的使用
  13. C++分享笔记:5X5单词字谜游戏设计
  14. 2016年腾讯实习生校园招聘-电面
  15. rust+mysql+prep+exec_Rust + Flutter 高性能的跨端尝试
  16. 微信自动回复(新年快乐)
  17. 设计模式之禅【迭代器模式】
  18. OA办公系统选购,千万别犯这些错
  19. 你只管善良,剩下交给时间
  20. Excel怎么把横排变竖排,一键转换表格格式

热门文章

  1. 两个经纬度偏角_转载:经纬度和方位角之间的关系
  2. linux中文本保存的快捷键,liunx中vi快捷键编辑
  3. leetcode 845.数组中的最长山脉(python)
  4. 听说你还在使用破解版Pycharm?
  5. 算术平均数、几何平均数、
  6. matlab中mov是什么意思,PLC编程中MOV是什么意思
  7. 笔记本护眼设置——全面攻略(保护视力)(笔者倾情奉献+强烈推荐)
  8. 计算机二级正式样式在哪里,满分新建样式,修改样式要学会-计算机二级等考office的省时利器...
  9. 米家扫地机器人按键没反应_米家扫地机器人1S测评:性能暴增40%,全面提升带来极佳体验...
  10. 可视化数据库监控警报工具 —— Sampler