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 Django连接MySQL数据库做增删改查
Nov 07 Python
c++生成dll使用python调用dll的方法
Jan 20 Python
常见的在Python中实现单例模式的三种方法
Apr 08 Python
python计算方程式根的方法
May 07 Python
Python基于回溯法解决01背包问题实例
Dec 06 Python
python正则表达式及使用正则表达式的例子
Jan 22 Python
Python3实现的Mysql数据库操作封装类
Jun 06 Python
Python实现模拟登录网易邮箱的方法示例
Jul 05 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
May 27 Python
8段用于数据清洗Python代码(小结)
Oct 31 Python
python计算Content-MD5并获取文件的Content-MD5值方式
Apr 03 Python
Python实现动态循环输出文字功能
May 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_MySQL教程-第一天
2007/03/18 PHP
mcrypt启用 加密以及解密过程详细解析
2013/08/07 PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
2016/03/28 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
PHP实现简单登录界面
2019/10/23 PHP
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
编写js扩展方法判断一个数组中是否包含某个元素
2013/11/08 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
使用AngularJS 跨站请求如何解决jsonp请求问题
2017/01/16 Javascript
简单实现js悬浮导航效果
2017/02/05 Javascript
js 只比较时间大小的实例
2017/10/26 Javascript
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
2017/11/27 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
2020/07/27 Javascript
在vue中实现给每个页面顶部设置title
2020/07/29 Javascript
用vue设计一个日历表
2020/12/03 Vue.js
jupyter安装小结
2016/03/13 Python
Python2.X/Python3.X中urllib库区别讲解
2017/12/19 Python
python pandas模块基础学习详解
2019/07/03 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
2020/02/09 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
2014/06/23 HTML / CSS
荷兰鞋子在线:Nelson Schoenen
2017/12/25 全球购物
NULL是什么,它是怎么定义的
2015/05/09 面试题
运动会广播稿80字
2014/01/23 职场文书
公司拓展活动方案
2014/02/13 职场文书
小学六年级学生评语
2014/04/22 职场文书
大学生党员自我评价
2015/03/04 职场文书
自主招生自荐信怎么写
2015/03/24 职场文书
龙猫观后感
2015/06/09 职场文书
MySQL慢查询的坑
2021/04/28 MySQL