【NodeJS案例】NodeJS搭建的自动抓取微博整理到微信的网站
【NodeJS案例】NodeJS搭建的自动抓取微博整理到微信的网站
上个月利用零碎的时间弄了这么一个网站,闲着蛋疼还注册了一个域名 http://weixinqikan.com . 这个网站的功能就是你可以把你的微信公众帐号绑定到上面,然后可以关联相关的微博,将微博的内容应用到你的微信公众帐号上面。如果有需要的使用的朋友可以给我发信。
【NodeJS案例】NodeJS搭建的自动抓取微博整理到微信的网站
上个月利用零碎的时间弄了这么一个网站,闲着蛋疼还注册了一个域名 http://weixinqikan.com. 这个网站的功能就是你可以把你的微信公众账号绑定到上面,然后可以关联相关的微博,将微博的内容应用到你的微信公众账号上面。如果有需要的用户可以给我发信。
技术栈
- 前端:HTML, CSS, JavaScript (jQuery)
- 后端:Node.js (Express框架)
- 数据库:MongoDB
- API接口:微博API, 微信公众平台API
系统架构
- 用户通过前端界面输入微博和微信账号信息。
- 后端通过微博API抓取微博内容。
- 抓取后的微博内容存储在MongoDB中。
- 定时任务定期从数据库中读取微博内容,并通过微信API发布到用户的微信公众号。
示例代码
1. 安装依赖
首先,确保安装了必要的Node.js依赖包:
npm install express mongoose axios
2. 创建Express服务器
// server.js
const express = require('express');
const mongoose = require('mongoose');
const app = express();
app.use(express.json());
mongoose.connect('mongodb://localhost/weibo-wechat', { useNewUrlParser: true, useUnifiedTopology: true });
// 定义微博模型
const WeiboSchema = new mongoose.Schema({
user_id: String,
content: String,
created_at: Date
});
const Weibo = mongoose.model('Weibo', WeiboSchema);
app.post('/bind', (req, res) => {
const { weibo_id, wechat_id } = req.body;
// 保存绑定信息到数据库
res.send({ message: '绑定成功' });
});
app.listen(3000, () => console.log('Server running on port 3000'));
3. 抓取微博内容
// weibo.js
const axios = require('axios');
async function fetchWeiboContent(user_id) {
try {
const response = await axios.get(`https://api.weibo.com/2/statuses/user_timeline.json?uid=${user_id}`);
const weibos = response.data.statuses.map(status => ({
user_id,
content: status.text,
created_at: new Date(status.created_at)
}));
return weibos;
} catch (error) {
console.error(error);
return [];
}
}
module.exports = fetchWeiboContent;
4. 发布到微信公众号
// wechat.js
const axios = require('axios');
async function sendToWeChat(content) {
try {
const response = await axios.post('https://api.weixin.qq.com/cgi-bin/message/custom/send', {
touser: 'USER_ID',
msgtype: 'text',
text: {
content: content
}
}, {
headers: {
'Authorization': `Bearer ACCESS_TOKEN`
}
});
return response.data;
} catch (error) {
console.error(error);
return null;
}
}
module.exports = sendToWeChat;
5. 定时任务
// scheduler.js
const cron = require('node-cron');
const fetchWeiboContent = require('./weibo');
const sendToWeChat = require('./wechat');
cron.schedule('*/10 * * * *', async () => {
const weibos = await fetchWeiboContent('USER_ID');
for (let weibo of weibos) {
await sendToWeChat(weibo.content);
}
});
以上代码只是一个简单的示例,实际项目中需要处理更多的细节,比如错误处理、用户认证等。希望这个案例能给你一些启发!
不错。主页面东西少了点。
嗯 没时间弄 而且这个本来就是想要开放给所有人用的 只是开放和推广还弄得不怎么样,玩玩先。
我觉得很不错哦,能不能发一份我学习学习,到邮箱:renhongji@qq.com
不错的啊 学习了
不错啊 楼主发一份谢谢
有创意
很不错哦,能不能发一份我学习一下吗,到邮箱:cjingzm@126.com。谢谢!!!
不错 能发我一份吗? 邮箱: mq1980@tom.com
不错 能发我一份吗? 邮箱: mq1980@tom.com
求学习 : 546668959@qq.com
求源码学习,iweisi@qq.com
楼主,来份源码学习 dandeliontin@gmail.com
感谢楼主 求份源码学习 c060604@163.com
看到的楼上的邮箱们以为自己误入了 csdn