爬取酷狗音乐网站,上榜单前500名的歌曲名称!
爬取网络数据
1.1首先读取网站`
https://www.kugou.com/yy/rank/home/1-6666.html?from=rank`
1.2定义用beautifulsoup选取HTML代码的文字部分:
def explain_HTML(mylist, html):soup = BeautifulSoup(html,'html.parser')songs = soup.select('div.pc_temp_songlist > ul > li > a')ranks = soup.select('span.pc_temp_num')times = soup.select('span.pc_temp_time')for rank,song,time in zip(ranks,songs,times):data = [rank.get_text().strip(),song.get_text().split("-")[1],song.get_text().split("-")[0],time.get_text().strip()]mylist.append(data) 12345678910111213
##为了使得打印展示的结果更加美观,应当调整打印的数据格式:
def print_HTML(mylist):for i in range(500):x = mylist[i]with open("D:\Anew\kugou.txt",'a',encoding = 'UTF-8') as f:f.write("{0:<10}\t{1:{4}<25}\t{2:{4}<20}\t{3:<10}\n".format(x[0],x[1],x[2],x[3],chr(12288))) 12345
为防止爬虫速度访问快而导致的爬取失败设立time.sleep(1)函数来进行预防上述风险。
1.4爬取结果展示如下:
1.5代码展示
import requests from bs4 import BeautifulSoup import timedef get_HTML(url):headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36","referer": "https://www.kugou.com/yy/rank/home/1-6666.html?from=rank"}try:r = requests.get(url,headers = headers)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:return ""def explain_HTML(mylist, html):soup = BeautifulSoup(html,'html.parser')songs = soup.select('div.pc_temp_songlist > ul > li > a')ranks = soup.select('span.pc_temp_num')times = soup.select('span.pc_temp_time')for rank,song,time in zip(ranks,songs,times):data = [rank.get_text().strip(),song.get_text().split("-")[1],song.get_text().split("-")[0],time.get_text().strip()]mylist.append(data)def print_HTML(mylist):for i in range(500):x = mylist[i]with open("D:\Anew\kugou.json",'a',encoding = 'UTF-8') as f:f.write("{0:<10}\t{1:{4}<25}\t{2:{4}<20}\t{3:<10}\n".format(x[0],x[1],x[2],x[3],chr(12288)))if __name__ == '__main__':url_0 = 'http://www.kugou.com/yy/rank/home/'url_1 = '-8888.html'mylist = []with open("D:\Anew\kugou.json",'a',encoding = "UTF-8") as f:f.write("{0:<10}\t{1:{4}<25}\t{2:{4}<20}\t{3:<10}\n".format("排名","歌曲","歌手","时间",chr(12288)))for j in range(1,24):url = url_0 + str(j) + url_1html = get_HTML(url)explain_HTML(mylist, html)print_HTML(mylist)time.sleep(1) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
1.6以json转码前文档应该为
在在线解析json工具展示应该为:
通过代码运行检验代码展示如下:
with open("D://Anew//Kugou.json", 'r', encoding="utf-8") as rdf:json_data=json.load(rdf)print('数据展示:', json_data) 123
编程生成CSV文件并转换成JSon格式
将信息以数组的形式进行编码录入
import csv test = [["姓名", "性别","籍贯","系别"], ["张迪", "男","重庆","计算机系"], ["兰博", "男","江苏","通信工程系"], ["黄飞", "男","四川","物联网系"], ["邓玉春", "女","陕西","计算机系"], ["周丽", "女","天津","艺术系"], ["李云", "女","上海","外语系"] ] with open('信息录入.csv', 'w',encoding="utf8") as file:csvwriter = csv.writer(file, lineterminator='\n')csvwriter.writerows(test) 123456789101112
2.2 csv进行代码转换为json格式
import csv,jsoncsvfile = open('D:\\Anew\\test.csv','r') jsonfile = open('D:\\Anew\\test.json','w')fieldnames = ('姓名','性别','籍贯','系别') reader = csv.DictReader (csvfile,fieldnames) for row in reader:json.dump(row,jsonfile)jsonfile.write('\n') 12345678910
由于json文件自带加密效果,因此需要在网上找到json的格式化校验工具。本次使用的是BEJSON工具,校验展示图如下:
2.3查询文件中女生信息
import json with open('D:\\Anew\\名单.json','r') as f:for line in f.readlines():line=json.loads(line)if(line['性别']=='女'):print(line) 123456
XML格式文件与JSon的转换
3.1(1)读取以下XML格式的文件,内容如下:
<?xml version=”1.0” encoding=”gb2312”> <图书> <书名>红楼梦
完整项目代码获取点这
爬取酷狗音乐网站,上榜单前500名的歌曲名称!相关推荐
- 爬取酷狗音乐网站(https://www.kugou.com/)上榜单前500名的歌曲名称
爬取网络数据 1.1首先读取网站` https://www.kugou.com/yy/rank/home/1-6666.html?from=rank` 1.2定义用beautifulsoup选取HTM ...
- Java爬虫系列之实战:爬取酷狗音乐网 TOP500 的歌曲(附源码)
在前面分享的两篇随笔中分别介绍了HttpClient和Jsoup以及简单的代码案例: Java爬虫系列二:使用HttpClient抓取页面HTML Java爬虫系列三:使用Jsoup解析HTML 今天 ...
- 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爬虫案例:爬取酷狗音乐全排行榜歌曲
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本次目标 爬取酷狗音乐全站排行榜歌曲 目标地址 https://www.ku ...
- scrapy_redis分布式爬取酷狗音乐
scrapy_redis分布式爬取酷狗音乐 前言 安装scrapy_redis 创建scrapy项目 spider模块 items模块.pipelines模块 setting.py 调试 运行 成果图 ...
- Python爬虫之爬取酷狗音乐歌曲
Python爬虫之爬取酷狗音乐歌曲 1.安装第三方库 在Python的语言库中, 分为Python标准库和Python的第三方库. Python标准库是在你安装Python的时候已经包含在了安装目录下 ...
- python爬取酷狗音乐排行榜
本文为大家分享了python爬取酷狗音乐排行榜的具体代码,供大家参考,具体内容如下 转载于:https://www.cnblogs.com/Pythonmiss/p/10799941.html
最新文章
- Oracle Gateway使用分享
- win7下安装docker
- e - bargain cf_cf诗意情侣名字大全最新_cf诗意情侣名字大全2020
- 【转】 SED多行模式空间
- mysql2012更改表名_SQL修改数据库名字、表名字、字段名字 | 学步园
- 局部描述符表LDT的作用+定义+初始化+跳转相关
- vscode 配置 路径别名 @
- TabError的解决方法
- linux中printf命令,Linux中printf命令使用实例
- (5)ISE14.7 开发流程(FPGA不积跬步101)
- 肌电信号的包络matlab程序_基于matlab的肌电信号处理程序
- 无线网络的网速很慢_手机信号强,网速慢?你这样设置,网速如飞!快到不可思议...
- node 安装express提示不是内部或外部命令
- 想辞职专心做自媒体可以吗?有哪些建议吗?
- 每日算法系列【LeetCode 289】生命游戏
- 关于IplImage中widthstep的大小与width,nchanne
- ajax上传文件判断大小,JavaScript检测上传文件大小的方法
- SSO —— 单点登录CAS与OAuth2
- C#操作dxf文件修改和绘制线、标签、块元素
- 基于Myrocks和spider构建分布式数据库
热门文章
- 在Windows系统上使用WSL和Docker
- ZM1040辉光管修复历程
- 阿里云本地SSD型实例i2gne云服务器配置性能详解
- 中国数据中心IT基础设施第三方服务行业运行状况分析及未来发展趋势展望报告2022-2027年
- 不怕有错误,就怕没错误(1)
- oracle consistent gets,consistentgets在Oracle使用特例
- 电商网站商品模型之商品详情页设计方案
- Java集合、IO、多线程的一些知识
- Consensus-Driven Propagation in Massive Unlabeled Data for Face Recognition 人脸聚类
- 理财笔记 - 老猫有感