博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Nodejs获取博客园博客数据并处理转发
阅读量:5900 次
发布时间:2019-06-19

本文共 1418 字,大约阅读时间需要 4 分钟。

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

 

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

 

但是我们打开其中一个接口的话会发现提供的接口返回的是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

你可能感兴趣的文章
第十一章 LINQ
查看>>
超实用的JavaScript技巧及最佳实践
查看>>
Eclipse在线安装SVN
查看>>
[Z] 从Uncaught SyntaxError: Unexpected token ")" 问题看javascript:void的作用
查看>>
CF 187D BRT Contract
查看>>
Burnside引理和polay计数学习小记
查看>>
用递归进行链表逆置
查看>>
C 入门 第一节
查看>>
STL源码分析读书笔记--第二章--空间配置器(allocator)
查看>>
[实战]MVC5+EF6+MySql企业网盘实战(2)——验证码
查看>>
ios之自定义UINavigationBar
查看>>
php中引用符号(&)的使用详解
查看>>
[题解]Codeforces Round #254 (Div. 2) B - DZY Loves Chemistry
查看>>
获取汉字首字母大写
查看>>
七牛云之上传demo
查看>>
SELinux引起的SSH公钥认证失败问题
查看>>
分布式主键生成策略
查看>>
神兵利器——Alfred
查看>>
wireshark使用
查看>>
Android定位&地图&导航——基于百度地图实现的定位功能
查看>>