爬取酷狗音乐网站(https://www.kugou.com/)上榜单前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)
##为了使得打印展示的结果更加美观,应当调整打印的数据格式:
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)))
为防止爬虫速度访问快而导致的爬取失败设立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)
1.6以json转码前文档应该为
在在线解析json工具展示应该为:
通过代码运行检验代码展示如下:
with open("D://Anew//Kugou.json", 'r', encoding="utf-8") as rdf:json_data=json.load(rdf)print('数据展示:', json_data)
编程生成CSV文件并转换成JSon格式
将信息以数组的形式进行编码录入
import csv
test = [["姓名", "性别","籍贯","系别"],
["张迪", "男","重庆","计算机系"],
["兰博", "男","江苏","通信工程系"],
["黄飞", "男","四川","物联网系"],
["邓玉春", "女","陕西","计算机系"],
["周丽", "女","天津","艺术系"],
["李云", "女","上海","外语系"]
]
with open('信息录入.csv', 'w',encoding="utf8") as file:csvwriter = csv.writer(file, lineterminator='\n')csvwriter.writerows(test)
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')
由于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)
XML格式文件与JSon的转换
3.1(1)读取以下XML格式的文件,内容如下:
<?xml version=”1.0” encoding=”gb2312”> <图书> <书名>红楼梦
爬取酷狗音乐网站(https://www.kugou.com/)上榜单前500名的歌曲名称相关推荐
- 爬取酷狗音乐网站,上榜单前500名的歌曲名称!
爬取网络数据 1.1首先读取网站` https://www.kugou.com/yy/rank/home/1-6666.html?from=rank` 1.2定义用beautifulsoup选取HTM ...
- Python爬虫爬取酷狗音乐TOP500
Python大作业 内容简介: 用Python来爬取酷狗音乐TOP500的歌曲信息,统计这500首歌曲中出现的所有歌手,并做可视化处理生成词云 实验代码: import time import req ...
- Python爬虫案例:爬取酷狗音乐全排行榜歌曲
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本次目标 爬取酷狗音乐全站排行榜歌曲 目标地址 https://www.ku ...
- Java爬虫系列之实战:爬取酷狗音乐网 TOP500 的歌曲(附源码)
在前面分享的两篇随笔中分别介绍了HttpClient和Jsoup以及简单的代码案例: Java爬虫系列二:使用HttpClient抓取页面HTML Java爬虫系列三:使用Jsoup解析HTML 今天 ...
- Python爬虫之爬取酷狗音乐歌曲
Python爬虫之爬取酷狗音乐歌曲 1.安装第三方库 在Python的语言库中, 分为Python标准库和Python的第三方库. Python标准库是在你安装Python的时候已经包含在了安装目录下 ...
- Python爬取酷狗音乐-详解(多图预警)
目录 1.前言 2.分析一下 1. 2. 3. 3.代码解释 4.完整代码 5.结语 1.前言 前面发布了一篇关于QQ音乐爬取的教程,但对于我们这种文艺青年来说,一个平台的歌曲怎么够我们听的,也是因为 ...
- python爬取酷狗音乐排行榜
本文为大家分享了python爬取酷狗音乐排行榜的具体代码,供大家参考,具体内容如下 转载于:https://www.cnblogs.com/Pythonmiss/p/10799941.html
- scrapy_redis分布式爬取酷狗音乐
scrapy_redis分布式爬取酷狗音乐 前言 安装scrapy_redis 创建scrapy项目 spider模块 items模块.pipelines模块 setting.py 调试 运行 成果图 ...
- 爬虫训练(三):爬取酷狗音乐
今天趁机一鼓作气,把简单爬虫内容一次学习完毕,最后以爬取酷狗音乐排行榜歌曲作为结束,然后对此次学习做一个整理和总结.而且前两篇有些混乱,这里把内容做一次阶段性总结. 一.安装包 爬虫三大包:reque ...
最新文章
- Visual Studio 2010 多定向的支持
- sublime_text3代码自动提示补全
- 日常生活小技巧 -- 虚拟串口工具
- scratch跳一跳游戏脚本_cocos creator制作微信小游戏「跳一跳」
- PHP之MVC项目实战
- 1. 第一个lavarel 项目
- Fashion Your Firefox
- 如何使用C#编写用友U8软件相关功能,适用于插件和二次开发
- 2018Oracle11g下载与安装菜鸟教程(二)
- 关于eclipse IDE安装Darkest Dark Theme主题插件
- Mac使用技巧:怎样破解iPhone 锁屏密码
- 【性能测试之问题分析】遇到内存告警百分之80以上的排查逻辑及实例分析(关键字:JVM、JAVA)
- 【官网】飞腾 2000 处理器
- Windows预览体验计划空白等一些问题的解决办法
- 国产数据库mysql_国产的数据库都有哪些?
- FL Studio乐理教程之和弦进行
- JavaScript实现拖拽上传 解析 APK 信息
- 系统安装 - 我们找不到任何驱动器
- 企业微信方便做售后吗?企微SCRM_带你体验私域流量新玩法
- Ubuntu系统中sh脚本编写
热门文章
- C#的多线程(2)之二
- Nature子刊:基于海马功能连接预测模型预测个体对压力的主观感受
- 简约空白个人导航源码
- 详解下一代网络(NGN)
- Day69(贪心算法)
- You will surely observe a Tiffany jewelry
- 【PC】完美解决 office2010 错误1920 未能启动服务 “Office Software Protection Platform”(osppsvc)
- python实现画板_Python3使用PyQt5制作简单的画板/手写板
- 广东迅视资管 电子视觉芯片每秒最快可计算181帧
- php 网页截图,codefromnet/PHP网页截图-网页快照实现.txt at master · yangyu0116/codefromnet · GitHub...