Nodejs 新闻爬虫、开放新闻服务项目,寻求免费服务器

Nodejs 新闻爬虫、开放新闻服务项目,寻求免费服务器

几个月前,开始用console.log(node.js+mongodb)实现,RSS新闻的抓取和新闻正文提取。抓取的效率非常搞,准确率基本上98%意思,新闻正文中不会出现广告和无关图片。 项目已经开源到github,也有不少兄弟关注:https://github.com/kissliux/rssSpider

希望为广大开发者提供免费新闻服务API接口。 所有编码已经完成,具体效果请看 http://blog.csdn.net/kissliux/article/details/22663991

使用百度的BAE ,无法正常部署,无法加载iconv.js

故寻求一个服务器!


16 回复

Nodejs 新闻爬虫、开放新闻服务项目,寻求免费服务器

几个月前,我开始用Node.js + MongoDB实现了一个RSS新闻抓取和新闻正文提取的项目。该项目的抓取效率非常高,准确率达到98%,确保了新闻正文中不会出现广告和无关图片。

项目概述

这个项目是一个基于Node.js的新闻爬虫,它可以从不同的RSS源抓取新闻,并提取出干净的新闻正文。目前,项目已经在GitHub上开源,得到了一些开发者的关注和支持。

项目链接: rssSpider

功能展示

该项目已经实现了以下功能:

  • RSS新闻抓取: 从指定的RSS源抓取新闻。
  • 新闻正文提取: 使用HTML解析库(如Cheerio)提取新闻正文,并过滤掉广告和无关图片。
  • 数据存储: 使用MongoDB存储抓取的数据。

开发者API

为了方便广大开发者使用,我计划提供一个免费的新闻服务API接口,让开发者可以轻松地获取新闻数据。

部署问题

我最初尝试将项目部署到百度的BAE (Baidu App Engine),但由于某些原因(如无法加载iconv.js),导致部署失败。因此,我现在需要寻找一个合适的服务器来托管这个项目。

寻求帮助

鉴于上述问题,我希望能够找到一个提供免费服务器资源的地方,或者有其他开发者愿意提供帮助。如果有任何建议或合作意向,请随时联系我!

示例代码

下面是一段简单的示例代码,展示了如何使用Node.js抓取RSS源并提取新闻正文:

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

async function fetchNews(url) {
    try {
        const response = await axios.get(url);
        const $ = cheerio.load(response.data);
        
        // 假设新闻标题和正文都在特定的class下
        const newsItems = $('.news-item');
        newsItems.each((index, element) => {
            const title = $(element).find('.title').text();
            const content = $(element).find('.content').text();
            
            console.log(`Title: ${title}`);
            console.log(`Content: ${content}`);
        });
    } catch (error) {
        console.error('Error fetching news:', error);
    }
}

// 示例RSS源URL
fetchNews('https://example.com/rss');

以上代码展示了如何使用axios库发送HTTP请求,并使用cheerio库解析HTML文档以提取新闻标题和正文。你可以根据实际情况调整选择器以匹配你的RSS源结构。

希望这个项目能够对广大开发者有所帮助,期待您的反馈和建议!


heroku + 1

其实一个VPS应该还是能支付的吧?

说说我的做法, 通过银行卡往 Paypal 充值, 然后 Paypal 购买 DigitalOcean…

好吧 你是对的

AWS,第一年还免费。

用了iconv-lite 没必要在用iconv 了吧…iconv 有c++ addons… 这个部署到bae 基本无解…

恩 确实是这个问题。 非常感谢, 正在着力解决 确实是爆这个错 c++ pure js 什么的。你知道具体原因不

如果想做大,就别用免费的东西。

http://newsapi.duapp.com/ 把这个项目挂到百度 BAE了

http://newsapi.duapp.com/ 把这个项目挂到百度 BAE了

其实我不太明白…为啥要iconv-lite 和 iconv 一起用呢…有什么功能一定要iconv能做而iconv-lite 做不了的呢…

我可以给你提供

谢谢 不过已经挂到 百度BAE了

针对您的需求,可以使用一些免费的服务器资源来部署您的Node.js应用。以下是一些推荐的免费服务器:

  1. Heroku:支持Node.js应用的托管平台,提供基本的免费计划。
  2. Glitch:在线协作平台,支持Node.js应用,并且非常易于使用。
  3. Vercel:用于静态网站和无服务器函数的云平台,适用于前端或后端项目。

示例代码

为了帮助您更好地理解如何部署一个简单的Node.js爬虫应用,我将提供一个简单的示例代码。这个例子中,我们将使用axios库来获取网页内容,然后使用cheerio来解析HTML并提取新闻信息。

首先,确保安装所需的库:

npm install axios cheerio

然后,创建一个名为newsScraper.js的文件,内容如下:

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

async function scrapeNews(url) {
    try {
        const response = await axios.get(url);
        const html = response.data;

        const $ = cheerio.load(html);

        // 假设新闻标题在<h2>标签中
        const newsTitles = [];
        $('h2').each((index, element) => {
            newsTitles.push($(element).text());
        });

        return newsTitles;
    } catch (error) {
        console.error(`Error scraping the page: ${error}`);
    }
}

// 使用示例
scrapeNews('http://example.com/news')
    .then(titles => {
        console.log('Scraped news titles:', titles);
    });

部署步骤

  1. Heroku

    • 创建一个新的Heroku应用。
    • 将你的代码推送到Heroku仓库。
    • 配置环境变量(如果需要)。
  2. Glitch

    • 注册一个Glitch账户。
    • 在Glitch上创建一个新的项目。
    • 上传你的代码文件。
  3. Vercel

    • 安装Vercel CLI。
    • 初始化一个新的Vercel项目。
    • 部署应用。

通过以上步骤,您可以轻松地将您的新闻爬虫应用部署到免费的服务器上,并提供API服务。希望这对您有所帮助!

回到顶部