Nodejs实时获取豆瓣小清新相册,微信小工具分享给大家玩玩

Nodejs实时获取豆瓣小清新相册,微信小工具分享给大家玩玩

公众号vimtips

随意回复,获取美图,实时持续更新,随机展现 还有彩蛋,等待发现

3 回复

Node.js 实时获取豆瓣小清新相册,微信小工具分享给大家玩玩

大家好!今天给大家分享一个有趣的项目——使用 Node.js 实时抓取豆瓣上的小清新相册,并通过微信小工具进行分享。这个项目不仅能让你随时获取到最新的美图,还能增加一些趣味性。

功能描述

  • 实时抓取:实时从豆瓣获取最新上传的小清新图片。
  • 随机展示:每次请求都会随机展示一张图片。
  • 微信小工具:通过微信小工具分享这些图片,让朋友们也能享受这份美好。

技术栈

  • Node.js:后端服务开发。
  • axios:用于发送 HTTP 请求。
  • express:用于创建 RESTful API。
  • wechaty:用于构建微信小工具。
  • random-js:用于生成随机数。

示例代码

首先,确保你已经安装了 Node.js 和 npm(Node 包管理器)。

安装依赖
npm install axios express wechaty random-js
获取豆瓣图片的 Node.js 服务
const express = require('express');
const axios = require('axios');
const app = express();

app.get('/api/douban', async (req, res) => {
    try {
        const response = await axios.get('https://api.douban.com/v2/group/4458488/feed?apikey=YOUR_API_KEY');
        const posts = response.data.recent_post;
        const randomPost = posts[Math.floor(Math.random() * posts.length)];
        res.json({ imageUrl: randomPost.image });
    } catch (error) {
        res.status(500).json({ error: 'Failed to fetch data from Douban' });
    }
});

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});
微信小工具

这里是一个简单的微信小工具示例,用于显示获取到的图片:

const { Wechaty } = require('wechaty');

const bot = new Wechaty();

bot.on('scan', (url, code) => {
    if (!code) {
        console.log(`Scan QR Code to login: ${url}`);
    } else {
        console.log(`Login Fail. Code: ${code}`);
    }
});

bot.on('login', user => {
    console.log(`User ${user} logged in`);
    bot.on('message', async message => {
        if (message.text() === '获取美图') {
            try {
                const response = await axios.get('http://localhost:3000/api/douban');
                const imageUrl = response.data.imageUrl;
                message.reply(imageUrl);
            } catch (error) {
                message.reply('Failed to fetch image.');
            }
        }
    });
});

bot.start()
    .then(() => console.log('Bot started.'))
    .catch(e => console.error(e));

总结

以上就是如何使用 Node.js 实时获取豆瓣小清新相册,并通过微信小工具分享给大家的方法。希望这个项目能给你带来乐趣和灵感!如果需要进一步的功能或优化,欢迎留言讨论。


注意:以上代码中的 YOUR_API_KEY 需要替换为你自己的豆瓣 API 密钥。


针对“Nodejs实时获取豆瓣小清新相册,微信小工具分享给大家玩玩”这个帖子,我们可以实现一个简单的Node.js应用来定期抓取豆瓣相册中的图片,并通过微信公众号或其他方式分享给用户。

实现思路

  1. 使用豆瓣API获取图片:豆瓣没有官方API可以获取图片信息,因此我们可能需要解析豆瓣页面来获取图片链接。这里需要用到一些网页爬虫技术。
  2. 定时任务:使用node-cron等库来定期执行图片抓取操作。
  3. 发送图片:将抓取到的图片通过邮件、短信或微信公众号等方式发送给用户。

示例代码

以下是一个简单的例子,展示如何使用axios抓取图片,以及如何使用node-cron定期执行任务。

安装依赖

npm install axios node-cron

抓取豆瓣图片

const axios = require('axios');
const cheerio = require('cheerio');

async function fetchImages() {
    const response = await axios.get('https://www.douban.com/photos/album/1645005830/');
    const $ = cheerio.load(response.data);
    
    const images = [];
    $('div.photo_wrap a').each((index, element) => {
        const href = $(element).attr('href');
        images.push(href);
    });
    
    console.log(images);
}

定时任务

const cron = require('node-cron');

cron.schedule('* * * * *', async () => { // 每分钟执行一次
    await fetchImages();
});

解释

  • fetchImages函数用于抓取豆瓣相册页面上的图片链接。
  • 使用了axios来请求页面,cheerio解析HTML。
  • cron.schedule设置了一个每分钟执行一次的任务,实际应用中可以根据需要调整频率。

注意事项

  • 豆瓣没有提供公开的API,所以这种方式可能违反其服务条款。建议寻找合法途径或与豆瓣官方沟通。
  • 爬虫行为可能会被豆瓣限制,需考虑使用代理、降低频率等方法以避免被封禁。

希望这能帮助你搭建基础框架,进一步完善功能。

回到顶部