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 相关文章推荐
django实现分页的方法
May 26 Python
详解Python中 sys.argv[]的用法简明解释
Dec 20 Python
详细解读tornado协程(coroutine)原理
Jan 15 Python
详解Python中的各种转义符\n\r\t
Jul 10 Python
Python BeautifulReport可视化报告代码实例
Apr 13 Python
jupyter notebook读取/导出文件/图片实例
Apr 16 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 Python
python输出国际象棋棋盘的实例分享
Nov 26 Python
python3处理word文档实例分析
Dec 01 Python
详解Django中的FBV和CBV对比分析
Mar 01 Python
python+pytest接口自动化之token关联登录的实现
Apr 06 Python
Python find()、rfind()方法及作用
Dec 24 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中使用gettext来支持多语言的方法
2011/05/02 PHP
php代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
php魔术变量用法实例详解
2014/11/13 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
PHP读取XML格式文件的方法总结
2017/02/27 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
PHP CURL中传递cookie的方法步骤
2019/05/09 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
jQuery知识点整理
2015/01/30 Javascript
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
2015/08/23 Javascript
vue自定义指令实现v-tap插件
2016/11/03 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
JavaScript实现一个带AI的井字棋游戏源码
2018/05/21 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
详解python调度框架APScheduler使用
2017/03/28 Python
Python面向对象之类的封装操作示例
2019/06/08 Python
python pytest进阶之xunit fixture详解
2019/06/27 Python
python:动态路由的Flask程序代码
2019/11/22 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
python的help函数如何使用
2020/06/11 Python
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
*p++ 自增p 还是p所指向的变量
2016/07/16 面试题
学校司机岗位职责
2013/11/14 职场文书
关于圣诞节的广播稿
2014/01/26 职场文书
国旗下演讲稿
2014/05/08 职场文书
批评与自我批评总结
2014/10/17 职场文书
六年级语文教学反思
2016/03/03 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL
使用tensorflow 实现反向传播求导
2021/05/26 Python
用Java实现简单计算器功能
2021/07/21 Java/Android