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两个内置函数 locals 和globals(学习笔记)
Aug 28 Python
老生常谈进程线程协程那些事儿
Jul 24 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
Jul 06 Python
Python分割指定页数的pdf文件方法
Oct 26 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
Aug 23 Python
python装饰器原理与用法深入详解
Dec 19 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
Python3 pickle对象串行化代码实例解析
Mar 23 Python
Python实现密钥密码(加解密)实例详解
Apr 26 Python
基于Python pyecharts实现多种图例代码解析
Aug 10 Python
爬虫代理的cookie如何生成运行
Sep 22 Python
在python中实现导入一个需要传参的模块
May 12 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
学习使用curl采集curl使用方法
2012/01/11 PHP
PHP 年龄计算函数(精确到天)
2012/06/07 PHP
mac环境中使用brew安装php5.5.15
2014/08/18 PHP
ThinkPHP3.2.2的插件控制器功能
2015/03/05 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
游戏人文件夹程序 ver 3.0
2006/07/14 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
2010/07/06 Javascript
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
2011/02/16 Javascript
js判断游览器类型及版本号的代码
2014/05/11 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
多种JQuery循环滚动文字图片效果代码
2020/06/23 Javascript
JavaScript中双向数据绑定详解
2017/05/03 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
详解Vue-Cli 异步加载数据的一些注意点
2017/08/12 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
2018/07/26 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
2020/06/12 Javascript
python实现倒计时的示例
2014/02/14 Python
python实现分页效果
2017/10/25 Python
Python扩展内置类型详解
2018/03/26 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
python构建指数平滑预测模型示例
2019/11/21 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
2020/06/11 Python
Python logging自定义字段输出及打印颜色
2020/11/30 Python
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
北美最大的参茸药食商城:德成行
2020/12/06 全球购物
大学学生会竞选演讲稿
2014/04/25 职场文书
租房协议书
2014/09/12 职场文书
退货证明模板
2015/06/23 职场文书
世界名著读书笔记
2015/06/25 职场文书
关于运动会的宣传稿
2015/07/23 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书
Python的三个重要函数详解
2022/01/18 Python