python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中


Posted in Python onAugust 24, 2019

爬取TOP500的音乐信息,包括排名情况、歌曲名、歌曲时间。

网页版酷狗不能手动翻页进行下一步的浏览,仔细观察第一页的URL:

http://www.kugou.com/yy/rank/home/1-8888.html

这里尝试将1改为2,再进行浏览,恰好是第二页的信息,再改为3,恰好是第三页的信息,多次尝试发现不同的数字即为不同的页面。因此只需更改home/后面的数字即可。由于每页显示的为22首歌曲,所以总共需要23个URL。

import requests
from bs4 import BeautifulSoup
from time import sleep
import pymongo
#连接数据库
client = pymongo.MongoClient(‘localhost',27017)
mydb = client[‘yourdb']
#创建数据库
musicTop = mydb[‘musicTop']

#使用header是用于伪装为浏览器,让爬虫更稳定
Headers = {
‘User-Agent': ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36'
}
#定义获取信息的函数
def get_info(url):
wd_data = requests.get(url,headers=Headers)
soup = BeautifulSoup(wd_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(),
‘song':title.get_text(),
‘time':time.get_text().strip()
}
musicTop.insert_one(data) #存入数据库中
if name == ‘main':
urls = [‘http://www.kugou.com/yy/rank/home/{}-8888.html'.format(number) for number in range(1,24)]
for url in urls:
get_info(url)
sleep(2)

运行后,爬取的数据在mongoDB数据库中显示如下:

python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中

以上这篇python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 转换 Javascript %u 字符串为python unicode的代码
Sep 06 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
Apr 17 Python
python3个性签名设计实现代码
Jun 19 Python
Python import与from import使用及区别介绍
Sep 06 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
Dec 14 Python
Python OpenCV对本地视频文件进行分帧保存的实例
Jan 08 Python
python调用matlab的m自定义函数方法
Feb 18 Python
Python2与Python3的区别实例分析
Apr 11 Python
python实现文件的分割与合并
Aug 29 Python
python处理excel绘制雷达图
Oct 18 Python
使用Keras实现简单线性回归模型操作
Jun 12 Python
Python内置包对JSON文件数据进行编码和解码
Apr 12 Python
python处理自动化任务之同时批量修改word里面的内容的方法
Aug 23 #Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
Aug 23 #Python
简单分析python的类变量、实例变量
Aug 23 #Python
python3 selenium自动化 frame表单嵌套的切换方法
Aug 23 #Python
python-Web-flask-视图内容和模板知识点西宁街
Aug 23 #Python
python3 selenium自动化测试 强大的CSS定位方法
Aug 23 #Python
python3 selenium自动化 下拉框定位的例子
Aug 23 #Python
You might like
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
PHP explode()函数用法讲解
2019/02/15 PHP
关于flash遮盖div浮动层的解决方法
2010/07/17 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
2010/11/11 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
使用Jquery实现每日签到功能
2015/04/03 Javascript
创建你的第一个AngularJS应用的方法
2015/06/16 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
jQuery实现获取table表格第一列值的方法
2016/03/01 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
Vue.js 单页面多路由区域操作的实例详解
2017/07/17 Javascript
使用html+js+css 实现页面轮播图效果(实例讲解)
2017/09/21 Javascript
js回文数的4种判断方法示例
2019/06/04 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
解决vue 给window添加和移除resize事件遇到的坑
2020/07/21 Javascript
如何使用JS console.log()技巧提高工作效率
2020/10/14 Javascript
[57:29]Alliance vs KG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/17 DOTA
python 布尔操作实现代码
2013/03/23 Python
Python+matplotlib+numpy绘制精美的条形统计图
2018/01/02 Python
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
使用pip发布Python程序的方法步骤
2018/10/11 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
浅析Python迭代器的高级用法
2020/07/16 Python
Python json格式化打印实现过程解析
2020/07/21 Python
新加坡鲜花速递/新加坡网上花店:Ferns N Petals
2020/08/29 全球购物
.NET面试10题
2014/02/24 面试题
结婚典礼证婚词
2014/01/11 职场文书
继承公证书样本
2014/04/04 职场文书
武当山导游词
2015/02/03 职场文书
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js
Java并发编程之详解CyclicBarrier线程同步
2021/06/23 Java/Android
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs
python开发人人对战的五子棋小游戏
2022/05/02 Python