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 相关文章推荐
安装dbus-python的简要教程
May 05 Python
利用Python中的pandas库对cdn日志进行分析详解
Mar 07 Python
python+opencv识别图片中的圆形
Mar 25 Python
Python系统监控模块psutil功能与经典用法分析
May 24 Python
python list格式数据excel导出方法
Oct 31 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
Jun 13 Python
python3.6+selenium实现操作Frame中的页面元素
Jul 16 Python
Python+OpenCV实现旋转文本校正方式
Jan 09 Python
opencv python图像梯度实例详解
Feb 04 Python
python爬取代理ip的示例
Dec 18 Python
Python中Pyspider爬虫框架的基本使用详解
Jan 27 Python
pytorch常用数据类型所占字节数对照表一览
May 17 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
松下Panasonic RF-B65电路分析
2021/03/02 无线电
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
2013/04/26 PHP
php验证session无效的解决方法
2014/11/04 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
2015/08/16 PHP
php $_SESSION会员登录实例分享
2021/01/19 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
jQuery实现导航栏头部菜单项点击后变换颜色的方法
2017/07/19 jQuery
iview table render集成switch开关的实例
2018/03/14 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
JS实现简单的抽奖转盘效果示例
2019/02/16 Javascript
Vue学习笔记之计算属性与侦听器用法
2019/12/07 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
2020/07/20 Javascript
解决iView Table组件宽度只变大不变小的问题
2020/11/13 Javascript
[01:24:16]2018DOTA2亚洲邀请赛 4.6 全明星赛
2018/04/10 DOTA
全面解读Python Web开发框架Django
2014/06/30 Python
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
Python爬虫实现验证码登录代码实例
2019/05/10 Python
对Python中class和instance以及self的用法详解
2019/06/26 Python
Django 创建/删除用户的示例代码
2019/07/24 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
Python Gitlab Api 使用方法
2019/08/28 Python
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
经典c++面试题六
2012/01/18 面试题
介绍一下linux的文件系统
2012/03/20 面试题
结婚周年感言
2014/02/24 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python
python数据可视化JupyterLab实用扩展程序Mito
2021/11/20 Python
使用vuex-persistedstate本地存储vuex
2022/04/29 Vue.js