爬取网络数据

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名的歌曲名称!相关推荐

  1. 爬取酷狗音乐网站(https://www.kugou.com/)上榜单前500名的歌曲名称

    爬取网络数据 1.1首先读取网站` https://www.kugou.com/yy/rank/home/1-6666.html?from=rank` 1.2定义用beautifulsoup选取HTM ...

  2. Java爬虫系列之实战:爬取酷狗音乐网 TOP500 的歌曲(附源码)

    在前面分享的两篇随笔中分别介绍了HttpClient和Jsoup以及简单的代码案例: Java爬虫系列二:使用HttpClient抓取页面HTML Java爬虫系列三:使用Jsoup解析HTML 今天 ...

  3. Python爬虫爬取酷狗音乐TOP500

    Python大作业 内容简介: 用Python来爬取酷狗音乐TOP500的歌曲信息,统计这500首歌曲中出现的所有歌手,并做可视化处理生成词云 实验代码: import time import req ...

  4. Python爬虫入门——2. 2爬取酷狗音乐top1-500歌曲信息

    有了第一个程序的基础,我们现在来爬取酷狗音乐top500的歌曲信息.连接http://www.kugou.com/yy/rank/home/1-8888.html 我们第一个程序只爬取了一个页面的数据 ...

  5. Python爬取酷狗音乐-详解(多图预警)

    目录 1.前言 2.分析一下 1. 2. 3. 3.代码解释 4.完整代码 5.结语 1.前言 前面发布了一篇关于QQ音乐爬取的教程,但对于我们这种文艺青年来说,一个平台的歌曲怎么够我们听的,也是因为 ...

  6. Python爬虫案例:爬取酷狗音乐全排行榜歌曲

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本次目标 爬取酷狗音乐全站排行榜歌曲 目标地址 https://www.ku ...

  7. scrapy_redis分布式爬取酷狗音乐

    scrapy_redis分布式爬取酷狗音乐 前言 安装scrapy_redis 创建scrapy项目 spider模块 items模块.pipelines模块 setting.py 调试 运行 成果图 ...

  8. Python爬虫之爬取酷狗音乐歌曲

    Python爬虫之爬取酷狗音乐歌曲 1.安装第三方库 在Python的语言库中, 分为Python标准库和Python的第三方库. Python标准库是在你安装Python的时候已经包含在了安装目录下 ...

  9. python爬取酷狗音乐排行榜

    本文为大家分享了python爬取酷狗音乐排行榜的具体代码,供大家参考,具体内容如下 转载于:https://www.cnblogs.com/Pythonmiss/p/10799941.html

最新文章

  1. Oracle Gateway使用分享
  2. win7下安装docker
  3. e - bargain cf_cf诗意情侣名字大全最新_cf诗意情侣名字大全2020
  4. 【转】 SED多行模式空间
  5. mysql2012更改表名_SQL修改数据库名字、表名字、字段名字 | 学步园
  6. 局部描述符表LDT的作用+定义+初始化+跳转相关
  7. vscode 配置 路径别名 @
  8. TabError的解决方法
  9. linux中printf命令,Linux中printf命令使用实例
  10. (5)ISE14.7 开发流程(FPGA不积跬步101)
  11. 肌电信号的包络matlab程序_基于matlab的肌电信号处理程序
  12. 无线网络的网速很慢_手机信号强,网速慢?你这样设置,网速如飞!快到不可思议...
  13. node 安装express提示不是内部或外部命令
  14. 想辞职专心做自媒体可以吗?有哪些建议吗?
  15. 每日算法系列【LeetCode 289】生命游戏
  16. 关于IplImage中widthstep的大小与width,nchanne
  17. ajax上传文件判断大小,JavaScript检测上传文件大小的方法
  18. SSO —— 单点登录CAS与OAuth2
  19. C#操作dxf文件修改和绘制线、标签、块元素
  20. 基于Myrocks和spider构建分布式数据库

热门文章

  1. 在Windows系统上使用WSL和Docker
  2. ZM1040辉光管修复历程
  3. 阿里云本地SSD型实例i2gne云服务器配置性能详解
  4. 中国数据中心IT基础设施第三方服务行业运行状况分析及未来发展趋势展望报告2022-2027年
  5. 不怕有错误,就怕没错误(1)
  6. oracle consistent gets,consistentgets在Oracle使用特例
  7. 电商网站商品模型之商品详情页设计方案
  8. Java集合、IO、多线程的一些知识
  9. Consensus-Driven Propagation in Massive Unlabeled Data for Face Recognition 人脸聚类
  10. 理财笔记 - 老猫有感