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中使用urllib2获取http请求状态码的代码例子
Jul 07 Python
python实现批量获取指定文件夹下的所有文件的厂商信息
Sep 28 Python
Python远程桌面协议RDPY安装使用介绍
Apr 15 Python
Python实现单词拼写检查
Apr 25 Python
使用DataFrame删除行和列的实例讲解
Apr 08 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
Jul 27 Python
Python 数据库操作 SQLAlchemy的示例代码
Feb 18 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
Apr 16 Python
pycharm 实现本地写代码,服务器运行的操作
Jun 08 Python
Python SMTP发送电子邮件的示例
Sep 23 Python
详细介绍python操作RabbitMq
Apr 12 Python
利用Python实现模拟登录知乎
May 25 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数字字符串左侧补0、字符串填充和自动补齐的几种方法
2014/05/10 PHP
php字符串分割函数用法实例
2015/03/17 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
2017/05/19 PHP
php实现有序数组旋转后寻找最小值方法
2018/09/27 PHP
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
2010/11/25 Javascript
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
2013/11/12 Javascript
使用js完成节点的增删改复制等的操作
2014/01/02 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
2015/08/11 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
2016/02/25 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
教你如何用node连接redis的示例代码
2018/07/12 Javascript
vue中的inject学习教程
2019/04/24 Javascript
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python开发中爬虫使用代理proxy抓取网页的方法示例
2017/09/26 Python
Python使用requests发送POST请求实例代码
2018/01/25 Python
使用sklearn的cross_val_score进行交叉验证实例
2020/02/28 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
Kathmandu美国网站:新西兰户外运动品牌
2019/03/23 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
电子专业推荐信范文
2013/11/18 职场文书
大学生未来职业生涯规划书
2014/02/15 职场文书
中学生爱国演讲稿
2014/09/05 职场文书
集结号观后感
2015/06/08 职场文书
青年教师听课心得体会
2016/01/15 职场文书
Python实现拼音转换
2021/06/07 Python
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技