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中迭代器(iterator)用法实例分析
Apr 29 Python
Python中表示字符串的三种方法
Sep 06 Python
Python3学习urllib的使用方法示例
Nov 29 Python
Python实现屏幕截图的两种方式
Feb 05 Python
python psutil库安装教程
Mar 19 Python
Python实现全排列的打印
Aug 18 Python
在win64上使用bypy进行百度网盘文件上传功能
Jan 02 Python
python3 logging日志封装实例
Apr 08 Python
Python面向对象实现方法总结
Aug 12 Python
Python通过字典映射函数实现switch
Nov 06 Python
Python中第三方库Faker的使用详解
Apr 02 Python
Pillow图像处理库安装及使用
Apr 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
PHP 字符串 小常识
2009/06/05 PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
2010/05/04 PHP
Smarty高级应用之缓存操作技巧分析
2016/05/14 PHP
PHP利用递归函数实现无限级分类的方法
2019/03/22 PHP
YII2框架中查询生成器Query()的使用方法示例
2020/03/18 PHP
jQuery 学习第五课 Ajax 使用说明
2010/05/17 Javascript
js 页面关闭前的出现提示的实现代码
2011/05/25 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
jquery彩色投票进度条简单实例演示
2020/07/23 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
基于vuejs实现一个todolist项目
2017/04/11 Javascript
Vue.js教程之axios与网络传输的学习实践
2017/04/29 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
vue中如何去掉空格的方法实现
2018/11/09 Javascript
vue实现购物车列表
2020/06/30 Javascript
python备份文件的脚本
2008/08/11 Python
探究Python中isalnum()方法的使用
2015/05/18 Python
Python读取图片属性信息的实现方法
2016/09/11 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
2018/11/06 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
Pytorch mask_select 函数的用法详解
2020/02/18 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
python3 实现口罩抽签的功能
2020/03/11 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
2020/04/21 Python
python lambda的使用详解
2021/02/26 Python
电子商务专业学生职业生涯规划
2014/03/07 职场文书
《从现在开始》教学反思
2014/04/15 职场文书
2014年三万活动总结
2014/04/26 职场文书
篮球赛新闻稿
2015/07/17 职场文书
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python