爬取酷狗音乐TOP榜所有的歌曲信息
一、 构造url:
1. 进入酷狗音乐官方网站,点击酷狗TOP500,查看浏览器地址栏
可以看到地址为https://www.kugou.com/yy/rank/home/1-8888.html?from=rank;其中各个部分代码的含义如下:
字段 | 含义 |
---|---|
https | 传输协议 |
www.kugou.com | 域名 |
yy/rank/home/abs | 域名下的子网页 |
.html | 代表网页是静态的 |
? | 代表一种条件,后面接参数 |
1-8888 | 8888可能是端口,1代表当前页面数,TOP500一共有23页,从1-8888到23-8888 |
2. 知道了地址栏的含义,就可以构造url了,用以下代码构造
urls=['https://www.kugou.com/yy/rank/home/{}-8888.html?from=rank'.format(str(i)) for i in range(1,24)]
3. 构造请求头,防止反爬虫
下载fiddler,抓取访问酷狗官网时的包,点击打开,查看user-agent信息
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/53\7.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'}
二、 通过url获取网页源代码:
1. 下载Requests包
pip install Requests
2. 获取目标网址的网页源代码
response = requests.get(url, headers=headers).text
成功将网页爬取到pycahrm中
三、 使用python的BeautifulSoup库提取所需信息:
1. BeautifulSoup库中有一个select函数,可以通过chrome的selctor自动识别
要截取的目标元素
按F12进入开发模式,找到目标元素对应的代码
右键,复制为selector
提取数据部分代码:
html = BeautifulSoup(html)names=html.select('#rankWrap > div.pc_temp_songlist > ul > li > a')#获取歌手和歌曲名称for name in names:singer.append(name['title'].split('-')[0])song.append(name['title'].split('-')[1])#获取歌曲时长times = html.select('#rankWrap > div.pc_temp_songlist > ul > li> span.pc_temp_tips_r > span')for t in times:l = str(t)l = re.sub('\s+', ' ', l)l = re.search("(\d{1,2}:\d{1,2})", l)time.append(l.group(1))
四、 将获取的数据打包生产JSON格式:
1. 用zip函数将几个list打包并生成JSON格式数据
d=[]size = list(range(500))for i, r, p, q in zip(size, singer, song, time):data = {'排名': i + 1,'演唱者': r,'歌曲名称': p,'歌曲时长': q}d.append(data)str_json = json.dumps(d, indent=2, ensure_ascii=False)
2. 保存到 'kugou.json文件中
with open('kugou.json, 'w') as f:f.write(json.dumps(str_json))
五、 测试JSON格式是否正确:
python代码
import json
with open('D:\pythonProject\exp\kugou.json,'r') as f:str_json=f.read()
str_json=json.loads(str_json)
print(str_json)
结果
爬取酷狗音乐TOP榜所有的歌曲信息相关推荐
- python爬虫-爬取酷狗音乐top榜
酷狗音乐top500榜单就是我们今天需要爬取的对象,作为新手入门的代码,只需要将信息爬取下来即可,十分简单,不需要保存到数据库或保存到文件,仅当普通练习. https://www.kugou.com/ ...
- Python爬虫之爬取酷狗音乐歌曲
Python爬虫之爬取酷狗音乐歌曲 1.安装第三方库 在Python的语言库中, 分为Python标准库和Python的第三方库. Python标准库是在你安装Python的时候已经包含在了安装目录下 ...
- Python爬虫爬取酷狗音乐TOP500
Python大作业 内容简介: 用Python来爬取酷狗音乐TOP500的歌曲信息,统计这500首歌曲中出现的所有歌手,并做可视化处理生成词云 实验代码: import time import req ...
- Python爬虫入门——2. 2爬取酷狗音乐top1-500歌曲信息
有了第一个程序的基础,我们现在来爬取酷狗音乐top500的歌曲信息.连接http://www.kugou.com/yy/rank/home/1-8888.html 我们第一个程序只爬取了一个页面的数据 ...
- Python爬取酷狗音乐-详解(多图预警)
目录 1.前言 2.分析一下 1. 2. 3. 3.代码解释 4.完整代码 5.结语 1.前言 前面发布了一篇关于QQ音乐爬取的教程,但对于我们这种文艺青年来说,一个平台的歌曲怎么够我们听的,也是因为 ...
- python爬取酷狗音乐排行榜
本文为大家分享了python爬取酷狗音乐排行榜的具体代码,供大家参考,具体内容如下 转载于:https://www.cnblogs.com/Pythonmiss/p/10799941.html
- Python爬虫案例:爬取酷狗音乐全排行榜歌曲
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本次目标 爬取酷狗音乐全站排行榜歌曲 目标地址 https://www.ku ...
- Java爬虫系列之实战:爬取酷狗音乐网 TOP500 的歌曲(附源码)
在前面分享的两篇随笔中分别介绍了HttpClient和Jsoup以及简单的代码案例: Java爬虫系列二:使用HttpClient抓取页面HTML Java爬虫系列三:使用Jsoup解析HTML 今天 ...
- scrapy_redis分布式爬取酷狗音乐
scrapy_redis分布式爬取酷狗音乐 前言 安装scrapy_redis 创建scrapy项目 spider模块 items模块.pipelines模块 setting.py 调试 运行 成果图 ...
最新文章
- 股市币市:数据分析与交易所最新公告(20190301)
- mysql 5.5.修改库名_安全快速修改Mysql数据库名的5种方法
- Leetcode 147. 对链表进行插入排序 解题思路及C++实现
- PyCharm 3.0 发布,提供免费开源版本
- 地图距离算法_ORB-SLAM3 单目地图初始化(终结篇)
- 在虚拟宿主环境中承载 Active Directory 域控制器时需要考虑的事项
- Spring的组件自动扫描机制
- ubuntu16.04下微信和TIM的安装
- X-Scan-v3.3 漏洞扫描工具使用
- python生成图像公章_科学网—python pillow库 python界的ps 实现数据批量盖章 并打包成exe - 李鸿斌的博文...
- 大数据舆情监测平台_大数据舆情监测与分析平台有哪些?舆情大数据监测软件排名2020...
- c语言中用什么表示空串,C语言怎么表示空串
- python matrix用法_numpy中matrix使用方法
- poj3580:SuperMemo(块状链表/Splay)
- AIX 6.1新功能 之RAS,虚拟化,存储及文件系统,网络增强,参数调整 (转帖)
- 硬盘是计算机的 奥鹏,奥鹏2016计算机应用基础一
- java中未处理的异常_Java中未处理的异常
- 刨根问底:linux中bash shell中SIGHUP和SIGTERM信号的处理
- SG-UAP平台 : MX框架总结
- 达克效应 邓宁·克鲁格心理效应
热门文章
- C#遇到System.Drawing.Bitmap有问题
- VSCode中MarkDown图片无法显示
- 调查系统 php,PHP网上调查系统
- python猴子吃桃递归_Python猴子吃桃题源码​:请问第一天摘了多少桃?
- 怎么彻底清除C语言软件,【AUTO Uninstaller - 使用教程】Autodesk系列软件终极完美修复卸载工具【转载】...
- 不用火绒,从源头去除 WinRAR 的弹窗广告
- 深度解析推荐系统的算法原理
- 一种基于模板匹配的图像配准方法
- CefSharp 浏览器打开多个
- 游戏‘微信打飞机’ 第三课