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解决字典中的值是列表问题的方法
Mar 04 Python
跟老齐学Python之不要红头文件(1)
Sep 28 Python
Python语言描述KNN算法与Kd树
Dec 13 Python
python并发2之使用asyncio处理并发
Dec 21 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
Mar 02 Python
对Python中gensim库word2vec的使用详解
May 08 Python
利用Pycharm断点调试Python程序的方法
Nov 29 Python
对PyQt5中的菜单栏和工具栏实例详解
Jun 20 Python
使用Pyhton集合set()实现成果查漏的例子
Nov 24 Python
Pytorch之Variable的用法
Dec 31 Python
Pytorch 保存模型生成图片方式
Jan 10 Python
Jupyter notebook 远程配置及SSL加密教程
Apr 14 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
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
你可能不知道PHP get_meta_tags()函数
2014/05/12 PHP
php采用curl模仿登录人人网发布动态的方法
2014/11/07 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
function foo的原型与prototype属性解惑
2010/11/19 Javascript
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
jQuery中clone()方法用法实例
2015/01/16 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
js选择器全面解析
2016/06/27 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
js绑定事件和解绑事件
2017/04/27 Javascript
js实现移动端导航点击自动滑动效果
2017/07/18 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
React 高阶组件入门介绍
2018/01/11 Javascript
angular2模块和共享模块详解
2018/04/08 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
react native 获取地理位置的方法示例
2018/08/28 Javascript
如何在Django项目中引入静态文件
2019/07/26 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
2020/02/20 Python
Python json格式化打印实现过程解析
2020/07/21 Python
详解HTML5 window.postMessage与跨域
2017/05/11 HTML / CSS
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
在阿联酋购买翻新手机和平板电脑:Teckzu
2021/02/12 全球购物
联想C++笔试题
2012/06/13 面试题
职工运动会邀请函
2014/01/19 职场文书
公司中层干部的自我评价分享
2014/03/01 职场文书
班子四风对照检查材料
2014/08/21 职场文书
小学生一分钟演讲稿
2014/08/26 职场文书
经验交流材料格式
2014/12/30 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
2016入党心得体会范文
2016/01/06 职场文书
SQL Server2019数据库备份与还原脚本,数据库可批量备份
2021/11/20 SQL Server