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 Deque 模块使用详解
Jul 04 Python
Python实现根据指定端口探测服务器/模块部署的方法
Aug 25 Python
深入解析Python中的descriptor描述器的作用及用法
Jun 27 Python
详解Python3中字符串中的数字提取方法
Jan 14 Python
python基础之包的导入和__init__.py的介绍
Jan 08 Python
Python解决八皇后问题示例
Apr 22 Python
Python实现带下标索引的遍历操作示例
May 30 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
Jun 03 Python
Django缓存Cache使用详解
Nov 30 Python
Python 如何实现文件自动去重
Jun 02 Python
Python基础教程,Python入门教程(超详细)
Jun 24 Python
python和C/C++混合编程之使用ctypes调用 C/C++的dll
Apr 29 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
网页游戏开发入门教程二(游戏模式+系统)
2009/11/02 PHP
PHP curl 并发最佳实践代码分享
2012/09/05 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
php绘制圆形的方法
2015/01/24 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
prototype.js的Ajax对象
2006/09/23 Javascript
js replace正则表达式应用案例讲解
2013/01/17 Javascript
javascript中的self和this用法小结
2014/02/08 Javascript
js中top的作用深入剖析
2014/03/04 Javascript
Javascript的闭包详解
2014/12/26 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
Bootstrap每天必学之前端开发框架
2015/11/19 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
vue移动端模态框(可传参)的实现
2019/11/20 Javascript
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
python发送邮件的实例代码(支持html、图片、附件)
2013/03/04 Python
Python复制目录结构脚本代码分享
2015/03/06 Python
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
Python判断直线和矩形是否相交的方法
2015/07/14 Python
Python实现进程同步和通信的方法
2018/01/02 Python
python自动发送邮件脚本
2018/06/20 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
Python实现钉钉/企业微信自动打卡的示例代码
2021/02/02 Python
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
HTML5 canvas基本绘图之填充样式实现
2016/06/27 HTML / CSS
瑞典领先的汽车零部件网上零售商:bildelaronline24.se
2017/01/12 全球购物
ECCO爱步官方旗舰店:丹麦鞋履品牌
2018/01/02 全球购物
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
简单的离婚协议书范本
2014/11/16 职场文书
小爸爸观后感
2015/06/15 职场文书
获奖感言范文
2015/07/31 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书
springboot读取nacos配置文件
2022/05/20 Java/Android
python 使用pandas读取csv文件的方法
2022/12/24 Python