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多线程和队列管理shell程序
Aug 04 Python
Python中的time模块与datetime模块用法总结
Jun 30 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
Dec 28 Python
python安装scipy的方法步骤
Jun 26 Python
Django Rest framework权限的详细用法
Jul 25 Python
python selenium登录豆瓣网过程解析
Aug 10 Python
numpy np.newaxis 的实用分享
Nov 30 Python
基于python使用tibco ems代码实例
Dec 20 Python
40个你可能不知道的Python技巧附代码
Jan 29 Python
python将数据插入数据库的代码分享
Aug 16 Python
python实现数学模型(插值、拟合和微分方程)
Nov 13 Python
总结三种用 Python 作为小程序后端的方式
May 02 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通过rmdir删除目录的简单用法
2015/03/18 PHP
PHP使用array_fill定义多维数组的方法
2015/03/18 PHP
PHP中is_file()函数使用指南
2015/05/08 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
微博@符号的用户名提示效果。(想@到谁?)
2010/11/05 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
vue axios登录请求拦截器
2018/04/02 Javascript
JS基于封装函数实现的表格分页完整示例
2018/06/26 Javascript
javascript和php使用ajax通信传递JSON的实例
2018/08/21 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
django rest framework serializers序列化实例
2020/05/13 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
美国价格实惠的在线眼镜网站:Zeelool
2020/12/25 全球购物
XML文档面试题
2015/08/05 面试题
单位门卫岗位职责
2013/12/20 职场文书
领导检查欢迎词
2014/01/14 职场文书
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
空气环保标语
2014/06/12 职场文书
研究生求职自荐书
2014/06/23 职场文书
广告设计专业毕业生自我鉴定
2014/09/27 职场文书
小学大队长竞选稿
2015/11/20 职场文书
网络研修心得体会
2016/01/08 职场文书
如何写好闭幕词
2019/04/02 职场文书
JavaScript控制台的更多功能
2021/04/28 Javascript
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技