使用Nodejs获取博客园博客数据并处理转发

通过查询了解到博客园是有开发博客查询相关的接口的,列表如下:

Uri Method Description
48HoursTopViewPosts/{itemCount} GET 48小时阅读排行
bloggers/recommend/{pageIndex}/{pageSize} GET 分页获取推荐博客列表
bloggers/recommend/count GET 获取推荐博客总数
bloggers/search GET 根据作者名搜索博主
post/{postId}/comments/{pageIndex}/{pageSize} GET 获取文章评论
post/body/{postId} GET 获取文章内容
sitehome/paged/{pageIndex}/{pageSize} GET 分页获取首页文章列表
sitehome/recent/{itemcount} GET 获取首页文章列表
TenDaysTopDiggPosts/{itemCount} GET 10天内推荐排行
u/{blogapp}/posts/{pageIndex}/{pageSize} GET 分页获取个人博客文章列表

但是我们打开其中一个接口的话会发现提供的接口返回的是xml格式的内容,因此如果需要后台转发为前台需要的格式还需要把xml转换为json数据:

那么我们一步一步来,首先需要Node将这个接口代理转发为自己的接口,其实只需要express的request中间件就可以了:

router.get(‘/api/getCNBlog‘, (req, res) => {
    let url = ‘http://wcf.open.cnblogs.com/blog/TenDaysTopDiggPosts/6‘;
    let data = {}
    request(url, (error, response, body) => {
            res.send(body)
    })
})

  但是这个时候接口返回的仍是xml格式的数据。那么下一步,我们需要将xml进行转化,通过搜索了解到node是有xml2js这个插件的,因此只需要在我们的node文件里面引入,再将数据转化就可以了。更改后的简易代码如下:

const xml2js = require(‘xml2js‘);

const parseString = xml2js.parseString;

router.get(‘/api/getCNBlog‘, (req, res) => {
    let url = ‘http://wcf.open.cnblogs.com/blog/TenDaysTopDiggPosts/6‘;
    let data = {}
    request(url, (error, response, body) => {
        parseString(body, (err, result) => {
            res.send({
                code: 200,
                data: result
            })
        });
    })
})

  如此一来,就可以看到,后台发过来的数据已经转为了Json格式:

大功告成~

原文地址:https://www.cnblogs.com/cheerup/p/8206680.html

时间: 2024-08-24 22:03:53

使用Nodejs获取博客园博客数据并处理转发的相关文章

博客园博客小优化

博客园博客小优化 Fork me on Github 页首Html 代码部分增加以下代码: <a href="https://github.com/WeihanLi" target="_blank"> <img style="position: fixed; top: 0; right: 0; border: 0;z-index:233" src="https://github-camo.global.ssl.fast

博客园博客转至个人网站博客声明

博客园博客不在提供维护更新,个人博客转至:https://monsterlin.com/

使用Windows Live Writer 发布博客园博客

看了下论坛的帮助,把自己喜欢的WLW内容整理了一下: 下载地址 http://windows.microsoft.com/en-us/windows-live/download-windows-essentials 账号配置 首次运行会弹出配置界面 当然也可以在菜单FileàOptions 项中进行账号配置 点击Add按钮在What blog service do you use? 对话框中选中 Other services 点击Next 进入 Add a blog account 对话框, 在

博客园博客自动生成三级目录(generate three levels content using JS in cnblogs)

博客园博客自动生成三级目录(generate three levels content using JS in cnblogs) JS代码(JS code) 最近参考了(http://www.cnblogs.com/wangqiguo/p/4355032.html)自动生成目录的方法,我增加了能够自动生成三级目录的JS代码. I learned from (http://www.cnblogs.com/wangqiguo/p/4355032.html) about generating cont

使用Windows Live Writer发布博客园博客

在管理中发现可以使用windows live writer来发布博客园博客. 具体可以参考:http://home.cnblogs.com/group/topic/8550.html 代码着色插件:http://www.cnblogs.com/cmt/archive/2012/06/26/live_writer_cnblogs_code_highlight.html

开通博客园博客说明

博客园博客说明 之前准备用hexo+github搭建的博客来记录自己的前端之旅,原先的博客确实搭建好了,但是由于自己对博客内容太在乎,一些平常的练习没有记录在其中.为了监督自己,为了给平时的练习存放,所以选择了博客园,博客园中的博客都是平常的练习,等到练习到一定程度,在总结至自己的博客上去. OK,博客园之旅就从今日开启. 原文地址:https://www.cnblogs.com/iDouble/p/8287678.html

博客园 博客积分与排名 查看设置

博客园 博客积分与排名 查看设置 博客园 博客积分与排名 默认是不显示的. 如果想要显示出来,需要在博客园的“设置”里进行设置. 具体操作步骤如下: 1.在博客园的“设置”中,选择“常用选项”,点击进入. 2.在“选项”中,找到“积分与排名”,勾选,保存即可. 3.刷新博客页面,即可看到自己博客的积分与排名情况,效果如下: 原文地址:https://www.cnblogs.com/miracle-luna/p/11789269.html

让博客园博客自动生成章节目录索引

一个好的博文除了博文的质量要好以外,好的组织结构也能让读者阅读的更加舒服与方便,我看园子里面有一些园友的博文都是分章节的,并且在博文的前面都带有章节的目录索引,点击索引之后会跳转到相应的章节阅读,并且还可以回到目录顶端,其中 Fish Li 的博文就是这种组织,当然这种结构如果是在写博文的时候人工设置那是非常麻烦的,无疑是增加了写作人的工作量.如果能自动生成章节索引岂不是节省了一大堆工作量.本来想通过FireBug看看Fish Li源码是怎么实现的,但是好像js是加密过的.那我就自己动手了,其实

博客园博主们的反击

相信不少博主都习惯了各种爬虫,各种采集了吧.前些时间好像有个朋友在抱怨博客园怎么没有对我们知识结晶进行保护.其实采集就采集吧,不加作者信息也就算了,最可恶的是不保留作者信息.好吧,不扯蛋了,我们进入正题. 我测试过多种方法,比如在开头加上隐藏的作者信息,或者原文链接等等方法.可是机器人也不是吃素的,现在好多机器人都会过滤我们的 a 标签,过滤 js 就更不用说了.经过多次尝试分析,发现他们采集内容后,都重新整理,比 img 重新提取 src 地址,然后替换会原处,这样我们在 img 上加什么都没