本文主要介绍“京东商品评价信息采集爬虫”的开发教程,爬取商品的第一页评价信息,爬取字段包括评价者、评价时间和评价内容,文章结尾会附上完整的爬虫代码。
采集商品URL:https://item.jd.com/2543188.html
使用功能点:
· JsonPath内容抽取
· onProcessScanPage和afterExtractField回调函数
接下来,给你详细说明“京东商品评价信息采集爬虫”的开发过程:
步骤1 创建爬虫
注册并登录神箭手,进入神箭手控制台。
点击“新建应用”,选择“爬虫”,点击“下一步”。
输入爬虫名称“京东商品评价信息采集爬虫”,选择“编辑模式”,点击“创建”,神箭手爬虫创建成功。
步骤2 分析网页&开发爬虫
本文使用Chrome浏览器分析京东商品网页,按“F12”快捷键打开浏览器“开发者工具”。
点击“商品评价(125万+)”,商品评价数据便会自动加载进来。
在浏览器“开发者工具”中选择“JS”,搜索“sclub”,便可找到存放商品评价信息的URL。
分析请求该URL返回的JSONP数据,结合神箭手开发文档,在神箭手爬虫编辑页开发爬虫代码。
步骤3 测试并运行爬虫
爬虫开发完成后,点击“测试”按钮看爬虫的爬取结果是否正确。
测试通过后,返回爬虫总览页,点击“启动爬虫”,稍等片刻,爬虫就会爬取到数据了。
步骤4 数据发布与导出
爬虫爬到数据后,可以选择将数据发布到网站或数据库中,点此查看神箭手数据发布详细教程。
此外,还可选择将数据“导出”,点此查看神箭手数据导出详细教程。
神箭手爬虫导出数据示例,如下图所示:
“京东商品评价信息采集爬虫”完整示例代码:
```javascript
/**
京东商品评价信息采集爬虫源码
只爬第一页商品评论数据
**/
var configs = {
domains: [".jd."],
scanUrls: ["https://item.jd.com/2543188.html"],
contentUrlRegexes: [
/http[s:\/]+sclub\.jd\.com\/.*/
],
helperUrlRegexes: [""],
fields: [
{
name: "comments",
alias: "商品评价",
selectorType: SelectorType.JsonPath,
selector: "$.comments",
repeated: true,
children:[
{
name: "author_name",
alias: "评价者",
selectorType: SelectorType.JsonPath,
selector: "$.nickname",
required: true,
primaryKey: true
},
{
name: "publish_time",
alias: "评价时间",
selectorType: SelectorType.JsonPath,
selector: "$.creationTime",
type: "timestamp",
primaryKey: true
},
{
name: "content",
alias: "评价内容",
selectorType: SelectorType.JsonPath,
selector: "$.content",
primaryKey: true
}
]
}
]
};
configs.onProcessScanPage = function(page, content, site) {
var m = /\/(\d+)\.html/.exec(page.url);
if (m && m[1]) {
var options = {
method: "get",
headers: {
referer: page.url
}
};
var commentUrl = "https://sclub.jd.com/comment/productPageComments.action?productId=" + m[1] + "&score=0&sortType=1&page=0&pageSize=10";
site.addUrl(commentUrl, options);
}
return false;
};
configs.onProcessContentPage = function(page, content, site) {
return false;
};
configs.afterExtractField = function(fieldName, data, page, site) {
if (fieldName == "comments.publish_time") {
var timestamp = Date.parse(data);
return isNaN(timestamp) ? 0 : timestamp/1000;
}
return data;
};
var crawler = new Crawler(configs);
crawler.start();
```
神箭手大数据市场“京东商品评价采集爬虫”购买地址:http://www.shenjian.io/index.php?r=market/product&product_id=301