爬取酷狗音乐网站,上榜单前500名的歌曲名称!

Python爬虫(一)-----酷狗Top500的数据 python入门 阅读详情

爬取网络数据

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 time

def 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_encoding
        return r.text
    except:
        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_1
        html = 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,json

csvfile = 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”> <图书> <书名>红楼梦

完整项目代码获取点这

 

Python爬取酷狗Top500的歌曲!够你吹个小牛皮了吧! 一、准备工作 安装 requests 库和 beautifulsoup4 库: pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple pip install beautifulsoup4 -i https://pypi.tuna.tsinghua.edu.cn/simple requests 库是一个简洁且简单的处理HTTP请求的第三方库;beautifulsoup4 库是一个解析和处理HTML 和 XML 的第三方库。 阅读详情

相关推荐

Android - 蓝牙开发

文章目录科普SIG类型制式编程Classic BluetoothBluetooth Low Energy蓝牙的UUID是什么?有什么用? 科普 https://zh.wikipedia.org/wiki/%E8%97%8D%E7%89%99 蓝牙(英语:Bluetooth),一种无线通讯技术标准,用来让固定与移动设备,在短距离间交换资料,以形成个人局域网(PAN)。其使用短波特高频(UHF)无线电波,经由 2.4 至 2.485 GHz 的 ISM(工业、科学、医疗)频段来进行通信。1994 年由电信商

qq_43323826的博客 1万+

【python】爬取酷狗音乐Top500排行榜【附源码】

爬虫案例、爬取酷狗音乐排行榜、爬虫top500

m0_73367097的博客 2万+

zabbix5+dify+ollama+deepseek+企业微信 本地部署实现故障智能分析

zabbix5告警信息deepseek自动分析

slc14211421的专栏 3074

【python实现网络爬虫(14)】python爬取酷狗中多类型音乐步骤详解(附全部源代码)

目标网址:酷狗音乐-赤伶,页面如下 爬虫逻辑: 【找到要获取特定音乐的url】>>>【找到该资源链接的url】>>>【封装获取音乐的函数】>>>【封装下载音乐的函数】 注意: 这两个获取url的顺序是和之前获取url的过程是反过来的,以往是获取外部页面的url后进入内部页面的url,然后再获取该页面的信息。 但是下载音乐(定向爬取数据),首先...

lys_828的博客 2万+

Python爬虫实战:如何优雅地处理BOSS直聘的反爬机制与Cookie失效问题

本文详细介绍了如何通过Python爬虫技术优雅应对BOSS直聘的反爬机制与Cookie失效问题。从多账号轮换、动态请求头生成到代理IP管理,提供了一套完整的解决方案,帮助开发者构建稳定高效的数据采集系统,有效提升爬虫成功率与数据质量。

weixin_30733003的博客 1564

OpenCV实战:用C++和Python实现亚像素边缘检测(附完整代码)

本文详细介绍了使用OpenCV实现亚像素边缘检测的技术,通过C++和Python双语言代码解析,提升工业测量和医学影像中的检测精度。文章涵盖算法原理、核心实现步骤及工业应用案例,帮助开发者掌握亚像素精度处理技术,解决高精度场景中的边缘检测难题。

beer8的博客 376

使用Python和BeautifulSoup爬取酷狗网页排行榜数据并保存为CSV文件

这段代码的主要功能是从指定网页中提取歌曲的名称和链接,并将这些数据保存到CSV文件中。这个CSV文件可以用于进一步的数据分析或处理。向指定的URL发送HTTP GET请求,获取网页的内容,并将其存储在变量。最后,打印一条成功消息,指示链接已保存到CSV文件中。方法查找每个歌曲的名称和链接,然后将它们添加到。定义CSV文件的列名为 ["歌曲", "链接"]。元素,这样就找到了排行榜中的歌曲列表。将歌曲的名称和链接数据写入CSV文件。变量中的网页内容,以便后续操作。用于处理CSV文件。,用于存储歌曲的链接。

Volcano99的博客 1223

QT 面试题汇总

一、讲述Qt信号槽机制与优势与不足 优点:①类型安全。需要关联的信号槽的签名必须是等同的。即信号的参数类型和参数个数同接受该信号的槽的参数类型和参数个数相同。若信号和槽签名不一致,编译器会报错。 ②松散耦合。信号和槽机制减弱了Qt对象的耦合度。激发信号的Qt对象无需知道是那个对象的那个信号槽接收它发出的信号,它只需在适当的时间发送适当的信号即可,而不需要关心是否被接受和那个对象接受了。Qt就保证了适当的槽得到了调用,即使关联的对象在运行时被删除。程序也不会奔溃。 ...

编程菜鸟 4万+

爬取酷狗音乐网站(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'

weixin_44725117的博客 2936

IBM X3650 M4做raid阵列

步骤1.开机出现此界面,同时按ctrl键和h键,进入IBM X3650 M4配置raid界面。 【注】不知道是不是因为我的服务器长期闲置,按键ctrl键和h键居然无法进入raid配置界面。这时候,我们可以进bios同样可以进入raid配置界面。如果你按ctrl键和h键就可以直接进入raid配置界面,那么请忽略此段,直接看步骤2 开机,按键F1,选中system setting ,接着选中Adapters and UEFI Drivers ...

ani5565的博客 2万+

深入YOLOv8内部核心:用RepNCSPELAN4深度重构主干网络,即插即用的高效涨点方案

本文提出了一种改进YOLOv8目标检测模型的方法,通过在YOLOv8中引入RepNCSPELAN模块来提高检测性能。该模块融合了RepVGG重参数化思想与CSP-ELAN结构,在保持推理速度的同时增强特征表达能力。实验结果表明,改进后的RepNCSPELAN-YOLOv8相比原模型在多项指标上均有提升:准确率从0.84提高到0.86,召回率从0.72提升至0.81,mAP50和mAP50-95也分别提高了0.06和0.04。文章详细介绍了模块设计原理和移植步骤,包括配置文件创建、代码修改等关键环节,为YOL

FJN110的博客 191

Python爬虫爬取酷狗音乐TOP500

Python大作业 内容简介: 用Python来爬取酷狗音乐TOP500的歌曲信息,统计这500首歌曲中出现的所有歌手,并做可视化处理生成词云 实验代码: import time import requests from bs4 import BeautifulSoup import pandas as pd from matplotlib import pyplot as plt from wordcloud import WordCloud from PIL import Image import

qq_21045113的博客 4954

软件设计师---计算机系统

软件设计师---计算机系统

我从不打没有准备的仗! 3万+

【Python爬虫】爬取酷狗TOP500的数据

该文利用Requests和BeautifulSoup第三方库,爬去酷狗网榜单中酷狗TOP500的信息。 首先分析页面:https://www.kugou.com/yy/rank/home/1-8888.html 网页版酷狗不能手动翻页,进行下一步的浏览,但观察url可以尝试把1-8888的1替换成为2,在进行浏览,恰好返回的是第二页的信息。 经过多次尝试。发现更换不同数字,即跳转不同的页面,因此只需要更改home/后面的数字即可,由于每页只显示22条信息,所以我们抓取前500总共需要23个页面

码农-Vax天道的时间宝藏 6252

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Python爬取酷狗Top500的歌曲

文章目录一、准备工作二、对网站HTML源码进行分析三、爬取酷狗Top500的歌曲 一、准备工作 安装 requests 库和 beautifulsoup4 库: pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple pip install beautifulsoup4 -i https://pypi.tuna.tsinghua.edu.cn/simple requests 库是一个简洁且简单的处理HTTP请求的第三方库;beaut

xwmrcj的博客 740

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

爬取酷狗音乐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代表当前页面数

qq_43539664的博客 2696

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python爬取酷狗榜单并以文本形式保存_python爬取酷狗top500,分页爬取的问题

题目描述跟着书爬一下酷狗音乐top500我爬取的思路是先寻找所有网页,然后再请求所有网页,并将他们的内容用beautifulsoup解析出来,最后直接print,但是却报错了,我看了一下思路应该不会有什么问题啊?求各位大神帮助,报错:No connection adapters were found for '['http://www.kugou.com/yy/rank/...']'我的代码如下:...

weixin_39818631的博客 420

python爬虫爬取酷狗top500<1>

前言 这段时间正在学习python爬虫,今天分享一个关于酷狗音乐top500的爬虫。 python库 标准库 time 第三方库 requests库 BeautifulSoup库 自建库 agent库(自己创建) 编译环境 python版本:3.5 工具:pycharm agent库 使用python爬虫,我们有时候需要伪造成浏览器去发出请求,创建一个代理的库,每次编写爬虫脚本从中随机选取...

STARSG0d的博客 1041

看文档学爬虫(9)——[实战]爬取酷狗TOP500数据

根据[实战]爬取酷狗TOP500数据[^src]文档信息整理 目标 需要到http://www.kugou.com/yy/rank/home/1-8888.html?from=rank链接获取酷狗TOP500数据 保存排名,歌手名字,歌曲名,时常到Mongo数据库 页面分析 打开url链接: [^src] : http://f61be319.wiz03.com/share/s/3S6-cp1...

sinat_18131557的博客 451

使用Python对酷狗排行榜进行爬取 BeautifulSoup

使用Python爬取酷狗排行榜。Beautiful

Likely_X的博客 1060

编程小白的自学笔记九(python爬虫入门+代码详解)

很多小白都是听说python可以很好的编写爬虫脚本慕名而来,我也是,终于学到爬虫部分了

m0_49914128的博客 2606

数据导入与预处理实验二---json格式文件转换

一、实验概述: 【实验目的】 初步掌握数据采集的方法; 初步掌握利用爬虫爬取网络数据的方法 掌握不同数据格式之间的转换方法; 【实施环境】(使用的材料、设备、软件) Linux或Windows操作系统环境,MySql数据库,Python或其他高级语言 二、实验内容 第1题 爬取网络数据 【实验要求】 爬取酷狗音乐网站(https://www.kugou.com/)上榜单前500名的歌曲名称,演唱者,歌名和歌曲时长 将爬取的数据以JSon格式文件保存。 读取JSON格式任意数据,检验文件格式是.

charon的博客 3663

python爬虫项目实战: 爬取酷狗音乐详细操作

本次爬取结束,如果有什么其他问题或不懂可以私信哦~另外还有GUI渲染过的的exe便携版,想要了解的话可以看下一篇文章。

qq_43031450的博客 1万+

爬虫简单一之获取酷狗top500名歌曲的名字,作者,排名,时间。并存入txt,csv,mysql。

爬虫简单一之获取酷狗top500名歌曲的名字,作者,排名,时间。并存入txt,csv,mysql。 准备使用环境为Python3.6+csv+time+requests+beautifulsoup+os+pymysql 环境说明 安装所要使用的库,使用库的说明 csv库来实现存储csv文件 time设置爬取间隔 request访问URL beautifulsoup解析页面 os...

专注于各种资源、教程,免费分享 4631
上一篇: 用Python实现简单的抽奖程序!
下一篇: python自动领取淘金币完整代码,这个脚本值一千不!
pythonlaodi
博客等级 码龄6年 286粉丝 244原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值