python爬取网易云音乐歌词_python3爬取网易云音乐歌单里的歌词(含源码)
一些注意事项:
1.看了Coursera上面的python教程,里面给了一个非常简单的示例,只传一个url就获取到响应报文。然而很多网站是不能只通过一个url就响应请求的,你还需要填写报文头部也就是header部分。
2.得到的报文里面中文字符都是bytes,十六进制的格式,需要用utf-8解码
3.巧用控制台找到页面内容真实的网址
其余的注意点我都写在注释里了,完整源码如下:
#爬取网易云音乐我的歌单里面所有歌曲的歌词
import json
import requests
import re
import urllib
from bs4 import *
url = "http://music.163.com/playlist?id=129816983"
headers = {"Host":" music.163.com",
"User-Agent":" Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0",
#不必要的header属性可能会影响响应报文的编码方式,所以把它们注释掉
#"Accept":" text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
#"Accept-Language":" zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
#"Referer":"http://music.163.com/",
#"Cookie": "JSESSIONID-WYYY=k52%2FPjMyNbX0v38jH2efUXwEIZpw2NagEUzwTX%2FgifMsoMswU6yo3NN%5C%2Bb9jCpsRFZIc6lvPUK9wEjgBzwM%2B1T%2FRyvRGHhqyWbdvEcugCbNqTihfxHK1el66fk%2BNntcSwGVOBMEwlcFDBusingcH76NIeAQwbC6h%5CcipxCdO8T5IfBVO%3A1510825875526; _iuqxldmzr_=32; _ntes_nnid=e5ec3ba6b841b9d3eadcb910066f4dcb,1510815153893; _ntes_nuid=e5ec3ba6b841b9d3eadcb910066f4dcb; __utma=94650624.1386008069.1510815154.1510815154.1510824076.2; __utmz=94650624.1510815154.1.1.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmb=94650624.2.10.1510824076; __utmc=94650624",
#"Connection": "keep-alive",
#"Upgrade-Insecure-Requests": "1"
}
#只传url不能获得响应,需要传header
request = urllib.request.Request(url,headers=headers)
response = urllib.request.urlopen(request)
#不decode的话text是十六进制,不是中文
html = response.read().decode('utf-8','ignore')
soup = BeautifulSoup(html)
#打开1.txt 把歌单中的歌词写入
f=open('C:/Users/liuxu/Desktop/myfavoritesong.txt','w',encoding='utf-8')
for item in soup.ul.children:
#取出歌单里歌曲的id 形式为:/song?id=11111111
song_id = item('a')[0].get("href",None)
#利用正则表达式提取出song_id的数字部分sid
pat = re.compile(r'[0-9].*$')
sid = re.findall(pat,song_id)[0]
#这里的url是真实的歌词页面
url = "http://music.163.com/api/song/lyric?"+"id="+str(sid)+"&lv=1&kv=1&tv=-1"
html = requests.post(url)
json_obj = html.text
#歌词是一个json对象 解析它
j = json.loads(json_obj)
try:
lyric = j['lrc']['lyric']
except KeyError:
lyric = "无歌词"
pat = re.compile(r'\[.*\]')
lrc = re.sub(pat,"",lyric)
lrc = lrc.strip()
#print(lrc)
f.write(lrc)
f.close()
python爬取网易云音乐歌词_python3爬取网易云音乐歌单里的歌词(含源码)相关推荐
- 网易云歌单添加到php,[PHP源码]PHP获取网易云音乐mp3直链
释放双眼,带上耳机,听听看~! 大家好,今天给大家分享一个可以通过PHP直接获取网易云音乐的直链的代码,喜欢的就分享下吧~ 部分音乐可能因为版权或者其他原因,用这个php脚本可能获取不到 请见谅! h ...
- python网络爬虫-爬虫实战-(爬取网易云薛之谦歌单里歌曲并下载)
1.导入要用到的库 #导入库 import requests from fake_useragent import UserAgent from lxml import etree import re ...
- 网易云爬取首页歌单里的所有歌曲
网易云爬取首页歌单里的所有歌曲 前言:本文章仅供个人参考使用,非商用用途,其中参考了其他的文献资料,如有不妥之处,请联系本人邮箱:wurenjie8@163.com 思路:通过首页URL获取所有首页的 ...
- python利用charles爬虫爬取下载qq音乐歌单里的歌曲——多进程
因为这是我第一个独立实践的爬虫项目,所以这次把思路都放上来了 特别注意,用的是charles,可以拦截查看url 知识点: ·······利用charles分析网页,抓包,得出对应URL ······ ...
- 微信小程序之网易云音乐(五)- 排行详情页、歌单详情页、播放器组件开发
微信小程序之网易云音乐(五)- 排行详情页.歌单详情页.播放器组件开发 一. 排行详情页模块 二. 歌单详情页模块 三. 播放器组件 微信小程序之网易云音乐导航 一. 排行详情页模块 rank.vue ...
- python爬取豆瓣读书top250并保存xls(含源码)
python爬取豆瓣读书top250并保存xls(含源码) 又是霍霍豆瓣的一天O(∩_∩)O哈哈~. 目标网站:http://book.douban.com/top250/ 全军出击!!! 首先,按下 ...
- 多线程采集网易云所有歌单里歌曲url(爬虫)
简单多线程,利用地址池创建多线程,n倍提高爬虫速度,获取音乐文件破解中 import re import time import json import datetime import threadi ...
- 简单音乐播放器html+css+基础vue+含源码,有搜索和播放mv功能,代码可直接复制用。
题目:html+css+基础vue实现的简单音乐播放器(含源码),有搜索和播放mv功能,代码可直接复制用. 问题描述: 如果vue刚入门,掌握一些基础语法后就可以写一个简单的音乐播放器来练练手~~如果 ...
- 【python自动化测试】京东|淘宝|秒杀12306抢票程序揭秘!一起薅羊毛吧【含源码】
相信老铁们应该也看过很多这样的视频或者帖子:python自动秒杀的程序,京东,淘宝,大麦网抢票,秒杀抢购抢茅台,12306抢票,还有python薅羊毛的,感觉好像需求挺大的,很多人感兴趣.我也看了一些 ...
- python视频网站项目_Python开发教育网站项目实例教学(105集视频课程含源码)
Python开发教育网站项目实例教学(105集视频课程含源码)课程简介: Python开发教育网站项目实例教学(105集视频课程含源码)通过这105集Python实例视频课程的学习,学员可以掌握到使用 ...
最新文章
- 【STM32】FreeRTOS 系统配置
- What you should do if you want to become more professional in career?
- linux中查看用户组标识符,Linux用户和组管理
- 第九十二期:多少程序员注意到了「中台」的背面?
- python类的多态_8.python之面相对象part.6(python类中的多态与多态性)
- 多用类型常量,少用#define预处理指令
- js判断是对象还是集合
- 【标书应用场景】畅写Office为电子招投标提速赋能,助力项目招投标业务数字化转型
- 淘宝/天猫商品优惠券查询API接口,优惠券API接口
- 微信小程序switch组件尺寸控制
- .NET周报【11月第1期 2022-11-07】
- ACM简单题——不能被3整除的数
- 51单片机 静态数码管显示
- SQL Sever 远程计算机拒绝网络连接,错误:1225 具体解决步骤。
- 美国一大学向勒索软件缴纳114万美元赎金,以防学术数据曝光
- csol服务器显示乱码,我家玩反恐精英OL进入房间开始游戏后老是出现乱码怎么办? 爱问知识人...
- LISP标注路线桩号_如何用AutoLisp编写自动标注里程桩程序?
- Drupal主题开发指南(5.x)
- 杭电计算机学院老师,杭州电子科技大学计算机学院导师教师师资介绍简介-李平...
- PP-LCNet 一个轻量级的CPU卷积神经网络