用nodejs抓取Itunes前台内容
思路可以看之前的文章,我就不多说了。
因为AppStore的页面版只显示3天评论,所以,这次介绍的是抓取应用版的内容。
我们以抓取AppStore上一款新上的Super Mario Run的评论为例,写一个简单的爬虫
- 获取itunes评论
var request=require('request');
var url='http://itunes.apple.com/WebObjects/MZStore.woa/wa/userReviewsRow?cc=us&id=1145275343&displayable-kind=11&startIndex=0&endIndex=100&sort=0&appVersion=all'
var options = {
port: 80,
uri: url,
method: 'GET',
headers: {
'User-Agent': 'iTunes/11.0 (Windows;
Microsoft Windows 7 Business Edition Service Pack 1 (Build 7601)) AppleWebKit/536.27.1'
}
};
request(options,(error, response, body)=>{
console.log(body);
})
node 运行后,控制台打印如下内容:
文章图片
body打印结果
这个链接就是专门获取评论相关数据的,我们可以整理一下,看看每一条评论的结构
文章图片
接收到的内容
- 筛选需要的数据
知道结构了就很简单了,直接写一个format方法就可以打印数据了
function formatJson(contentsDate){
content=contentsDate.userReviewList;
content.forEach(function(item){
console.log('orginId:'+item.userReviewId);
console.log('username: ' + item.name + 'time:' + item.date);
console.log('star: ' + item.rating);
console.log('title: ' + item.title);
console.log('content: ' + item.body);
console.log('------------------------------------');
})
}
【用nodejs抓取Itunes前台内容】在之前打印body的地方调用formatJson,传入转换成json的body
request(options,(error, response, body)=>{
var datas=JSON.parse(body)
formatJson(datas);
})
运行文件,就可以看到打印结果了:
文章图片
Super Mario Run评论结果 因为这款游戏没有在中国区上,所以要翻墙,不翻墙可以找一款中国区商店有的应用,将链接中的cc换成cn即可。不明白具体可参照之前抓取思路那篇文章。
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- JS中的各种宽高度定义及其应用
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- 涉毒患者(新诗)
- 参保人员因患病来不及到指定的医疗机构就医,能否报销医疗费用()
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。