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魔法方法-属性访问控制详解
Jul 25 Python
Python读取sqlite数据库文件的方法分析
Aug 07 Python
django用户注册、登录、注销和用户扩展的示例
Mar 19 Python
python多线程之事件Event的使用详解
Apr 27 Python
使用 Python 实现微信群友统计器的思路详解
Sep 26 Python
如何利用Python分析出微信朋友男女统计图
Jan 25 Python
python gdal安装与简单使用
Aug 01 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
Jan 12 Python
Python xlrd excel文件操作代码实例
Mar 10 Python
keras实现调用自己训练的模型,并去掉全连接层
Jun 09 Python
python3爬虫中引用Queue的实例讲解
Nov 24 Python
Python 可迭代对象 iterable的具体使用
Aug 07 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
php 分库分表hash算法
2009/11/12 PHP
php 多线程上下文中安全写文件实现代码
2009/12/28 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
JS焦点图切换,上下翻转
2011/05/12 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
javascript鼠标滑动评分控件完整实例
2015/05/13 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
2016/07/07 Javascript
JS模拟实现ECMAScript5新增的数组方法
2017/03/20 Javascript
jQuery用noConflict代替$的实现方法
2017/04/12 jQuery
js使用i18n实现页面国际化的方法
2017/05/09 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
2017/07/04 jQuery
web前端vue filter 过滤器
2018/01/12 Javascript
vue+webpack 打包文件 404 页面空白的解决方法
2018/02/28 Javascript
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
微信小程序CSS3动画下拉菜单效果
2018/11/04 Javascript
Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解
2019/08/07 Javascript
关于Python面向对象编程的知识点总结
2017/02/14 Python
python3+PyQt5实现支持多线程的页面索引器应用程序
2018/04/20 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
python爬虫 爬取超清壁纸代码实例
2019/08/16 Python
Python 通过截图匹配原图中的位置(opencv)实例
2019/08/27 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
2020/07/14 Python
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
总经理助理的八要求
2013/11/12 职场文书
《夕阳真美》教学反思
2014/04/27 职场文书
亚布力滑雪场导游词
2015/02/09 职场文书
单位计划生育责任书
2015/05/09 职场文书
宝葫芦的秘密观后感
2015/06/11 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
2019餐饮行业创业计划书!
2019/06/27 职场文书
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers