前言:

同上篇爬虫练习-爬取小猪短租网北京地区短租房信息一样,均为极简的爬虫,仅仅爬取酷狗TOP500音乐信息(排名、歌手名、歌曲名、歌曲时长),可供入门和想入门的朋友学习。
本文为整理代码,梳理思路,并验证代码的有效性——2019.12.7


环境:
Python3(Anaconda3)
PyCharm
Chrome浏览器

主要模块:
BeautifulSoup
requests
time

1.

先看一下请求网址

# TOP500 首页
https://www.kugou.com/yy/rank/home/1-8888.html?from=rank


别被这个下载客户端唬住了,经过测试,我们可以通过修改“ /home/ ”后跟的数字来访问后面的页数,如:

https://www.kugou.com/yy/rank/home/2-8888.html?from=rank  # 第二页
https://www.kugou.com/yy/rank/home/3-8888.html?from=rank  # 第三页
...
以此类推

一页有22首歌,我们可以推算出总共有23页。

 # 构造多页URL
urls = ['http://www.kugou.com/yy/rank/home/{}-8888.html'.format(str(i)) for i in range(1,24)]

2.

解析获取信息 排行、歌手名、歌曲名、歌曲时长。

 soup = BeautifulSoup(wb_data.text, 'lxml')ranks = soup.select('span.pc_temp_num')  # 排行titles = soup.select('div.pc_temp_songlist > ul > li > a')  # 歌手名和歌曲名times = soup.select('span.pc_temp_tips_r > span')  # 歌曲时长

3.

本文仅学习简单爬虫的结构,不做文本的存储,这里只将爬取的数据以字典的形式显示在控制台上。

for rank, title, time in zip(ranks, titles, times):data = {'rank': rank.get_text().strip(),'singer': title.get_text().split('-')[0],'song': title.get_text().split('-')[1],  # 通过split获取歌手和歌曲信息'time': time.get_text().strip()}print(data)  # 获取爬虫信息并按字典格式打印

A.数据截图

B.完整代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-# 导入相应的库文件
import requests
from bs4 import BeautifulSoup
import time# 加入请求头
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 ''(KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
}# 定义获取信息的函数
def get_info(url):wb_data = requests.get(url=url, headers=headers)soup = BeautifulSoup(wb_data.text, 'lxml')ranks = soup.select('span.pc_temp_num')  # 排行titles = soup.select('div.pc_temp_songlist > ul > li > a')  # 歌手名和歌曲名times = soup.select('span.pc_temp_tips_r > span')  # 歌曲时长for rank, title, time in zip(ranks, titles, times):data = {'rank': rank.get_text().strip(),'singer': title.get_text().split('-')[0],'song': title.get_text().split('-')[1],  # 通过split获取歌手和歌曲信息'time': time.get_text().strip()}print(data)  # 获取爬虫信息并按字典格式打印# 程序主入口
if __name__ == '__main__':# 构造多页URLurls = ['http://www.kugou.com/yy/rank/home/{}-8888.html'.format(str(i)) for i in range(1,24)]for url in urls:get_info(url)  # 循环调用get_info()函数time.sleep(1)  # 睡眠1秒

爬虫练习-爬取酷狗TOP500音乐信息相关推荐

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

    该文利用Requests和BeautifulSoup第三方库,爬去酷狗网榜单中酷狗TOP500的信息. 首先分析页面:https://www.kugou.com/yy/rank/home/1-8888 ...

  2. Python疫起学习·万丈高楼平地起Day09(精简版|浓缩就是精华)爬虫知识附上案例爬取北京地区短租房信息、爬取酷狗TOP500的数据以及爬取网易云音乐热歌榜单

    爬虫知识 Requests库 部分运行结果如下: 有时爬虫需要加入请求头来伪装成浏览器,以便更好地抓取数据.在Chrome浏览器中按F12键打开Chrome开发者工具,刷新网页后找到User-Agen ...

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

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

  4. Python爬虫 爬取酷狗TOP500的数据

    根据书籍<从零开始学Python网络爬虫>P41,综合案例2-爬取酷狗TOP500的数据修改而来. 使用模块requests和模块BeautifukSoup进行爬取. 不得不说,酷狗拿来跑 ...

  5. python爬取音乐排行_Python爬取酷狗Top500的歌曲!够你吹个小牛皮了吧

    一.准备工作 安装 requests 库和 beautifulsoup4 库: requests 库是处理HTTP请求的一个简洁且简单的第三方库:beautifulsoup4 库是一个解析和处理HTM ...

  6. scrapy 爬取酷狗T500音乐

    scrapy 爬取酷狗T500音乐 开始工作 代码的编写 开始工作 1.创建项目scrapy startproject kugouScrapy 2.创建spider cd kugou scrapy g ...

  7. Python爬取酷狗Top500的歌曲

    文章目录 文章目录 文章目录 一.准备工作 二.对网站HTML源码进行分析 三.爬取酷狗Top500的歌曲 一.准备工作 安装 requests 库和 beautifulsoup4 库: pip in ...

  8. 使用Python爬取酷狗TOP500歌曲

    一个简单的Python案例,爬取酷狗TOP500歌曲,仅供学习参考 import requests from bs4 import BeautifulSoup import time# 爬取酷狗TOP ...

  9. python3爬虫实例(一)---爬取酷狗TOP500的音乐信息

    前言 学习完requests库与beautifulsoup这个库后,我们就可来搞一个简单的爬虫了,这次我们爬取酷狗音乐的TOP500的歌曲信息,包含排名,歌名,歌曲时长.分分钟爬取下来. 分析URL链 ...

最新文章

  1. the cdb terminated,Qt调试器问题
  2. Oracle-使用awrrpt.sql生成AWR报告
  3. 用于Web开发的8 个最好的跨平台编辑器
  4. windows 改变文件大小 函数_手写 bind call apply 方法 与 实现节流防抖函数
  5. PIC16F877矩阵键盘的识别
  6. 《看完它面试必solo | 寻找C站宝藏》
  7. DVI和HDMI中的TMDS接口协议
  8. 分布式系统架构常识:CAP理论
  9. 当使用easyui时,表单的onchange事件失效
  10. glide 加载webp_如何使您的网站通过WebP图像快速加载闪电
  11. (04)Verilog HDL模块仿真激励
  12. UICollectionViews有了简单的重排功能
  13. 别被数据分析师骗了!用数据说谎的三种办法
  14. 第十五章:进程间通信
  15. C# Windows 服务
  16. 使用linux批量引物设计,primer3引物设计详解
  17. 高铁订票系统设计C语言,数学建模 高铁订票系统建模
  18. 【机器学习与数据挖掘】浅谈指标SSE,MSE,RMSE,R-square
  19. java 根据数据库中存储的文件名批量修改本地文件的文件名后缀名
  20. 新增用户时输入账号已存在(全局异常处理)

热门文章

  1. thymeleaf自定义全局变量
  2. mysql建立联合索引_mysql之联合索引
  3. Java 定义一个抽象的打印机类Printer,定义一个抽象类和具体的子类。
  4. 先就业 再择业——2006届大学生的就业之路
  5. 如何下载网站以供离线访问
  6. dubbo+zookeeper安装及快速入门
  7. 查看 word版本号
  8. 游戏蓝牙耳机哪个品牌好?吃鸡蓝牙耳机无延迟排行榜
  9. excel工作表添加目录_长Excel工作表的目录
  10. 渗透测试面试题--日更(1-9day)