用nodejs抓取豆瓣音乐并存入mongodb
之前用python抓取豆瓣的音乐,保存到sxl中,最近在玩mongodb,就有了如下代码,主要涉及到nodejs连接mongodb并操作它,和http模块抓取网页内容
没什么深奥的原理,不多说,代码如下:
var mongo = require('mongodb'),
Server = mongo.Server,
Db = mongo.Db,
server = new Server('localhost', 27017, {auto_reconnect: true}),
db_name = 'test',
db_user = 'root',
db_pass = '111111',
table_name = 'douban',
db = new Db(db_name, server);
var http = require('http'),
channel = 1,
options = {
host: 'douban.fm',
port: 80,
path: '/j/mine/playlist?type=n&channel='+channel,
},
interval = 3000;
var globalIndex=0;
db.open(function(err, db) {
if(!err) {
db.authenticate(db_user, db_pass, function(err, result) {
db.collection(table_name, function(err, collection) {
var timer = setInterval(function(){
sigleIndex = 0;
http.get(options,function(res){
var buffers = [];
res.on('data', function(buffer) {
buffers.push(buffer);
});
res.on('end', function() {
var html = buffers.join('');
var data = JSON.parse( html );
var song = data.song;
for(var i=0;i<song.length;i++){
song[i]['channel'] = channel;
collection.insert(song[i],{safe:true},function(err, result){
if( !err ){
globalIndex++;
}
});
}
console.log("新增: " + globalIndex + "条记录");
});
}).on('error', function(e) {
console.log("Got error: " + e.message);
});
},interval);
});
db.close();
});
}
});
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微服务架构学习与思考:SOA架构与微服务架构对比分析
· tomcat为什么假死了
· 聊一聊 Linux 上对函数进行 hook 的两种方式
· C# 锁机制全景与高效实践:从 Monitor 到 .NET 9 全新 Lock
· 一则复杂 SQL 改写后有感
· 推荐 3 种 .NET Windows 桌面应用程序自动更新解决方案
· 一周 Star 破万的开源项目「GitHub 热点速览」
· .NET 10 支持Linux/Unix 的Shebang(Hashbang)
· 上周热点回顾(6.9-6.15)
· 记一次 .NET 某SaaS版CRM系统 崩溃分析