关注
var keyword = "d3.js";
//@input(keyword, 查询关键字, 爬取该关键字搜索出来的京东商品)
var comment_count = 100;
//@input(comment_count, 爬取的评论数, 最多爬取多少条评论)
var page_count = comment_count / 10;
keyword = keyword.trim();
var scanUrls = [];
scanUrls.push("http://search.jd.com/Search?keyword=" + keyword.replace(/ /g, "+") + "&enc=utf-8&scrolling=y&page=200");
var helperUrlRegexes = [];
helperUrlRegexes.push("http://search\\.jd\\.com/Search\\?keyword=" + keyword.replace(/ /g, "\\+").replace(/\./g, "\\.") + "&enc=utf-8&scrolling=y&page=\\d+");
var configs = {
domains: ["search.jd.com", "item.jd.com", "club.jd.com"], scanUrls: scanUrls, contentUrlRegexes: ["http://item\\.jd\\.com/\\d+.html"], helperUrlRegexes: helperUrlRegexes, interval: 10000, fields: [ { // 第一个抽取项 name: "title", selector: "//div[@id='name']/h1", required: true }, { // 第一个抽取项 name: "productid", selector: "//div[contains(@class,'fl')]/span[2]", required: true }, { name: "comments", selector: "//div[@id='comment-pages']/span", repeated: true, children: [ { name: "page", selector: "//text()" }, { name: "comments", sourceType: SourceType.AttachedUrl, attachedUrl: "http://club.jd.com/productpage/p-{$.productid}-s-0-t-3-p-{page}.html", selectorType: SelectorType.JsonPath, selector: "$.comments", repeated: true, children:[ { name: "com_content", selectorType: SelectorType.JsonPath, selector: "$.content" }, { name: "com_nickname", selectorType: SelectorType.JsonPath, selector: "$.nickname" } ]
} ]
} ]
};
configs.afterDownloadPage = function(page, site) { var matches = /item\.jd\.com\/(\d+)\.html/.exec(page.url);
if (!matches) return page; var commentUrl = "http://club.jd.com/productpage/p-"+matches[1]+"-s-0-t-3-p-0.html";
var result = site.requestUrl(commentUrl);
var data = JSON.parse(result); var commentCount = data.productCommentSummary.commentCount;
var pages = commentCount / 10;
if (pages > page_count) pages = page_count; var pageHtml = "<div id=\"comment-pages\">";
for (var i = 0; i < pages; i++) { pageHtml += "<span>" + i + "</span>"; } pageHtml += "</div>";
var index = page.raw.indexOf("</body>");
page.raw = page.raw.substring(0, index) + pageHtml + page.raw.substring(index); return page; };
var dataSku = 0; configs.onProcessHelperPage = function(page, content, site) { var num = parseInt(extract(content, "//*[@id='J_goodsList']/ul/li[1]/@data-sku"));
if (dataSku === 0) {
dataSku = isNaN(num) ? 0 : num; }
else if (dataSku === num) {
dataSku = 0; return false; } var currentPageNum = parseInt(page.url.substring(page.url.indexOf("&page=") + 6));
if (currentPageNum === 0) {
currentPageNum = 1;
} var pageNum = currentPageNum + 1; var nextUrl = page.url.replace("&page=" + currentPageNum, "&page=" + pageNum);
site.addUrl(nextUrl); return true; };
configs.afterExtractPage = function(page, data) {
if (data.comments === null || data.comments === undefined)
return data; var comments = [];
for (var i = 0; i < data.comments.length; i++) {
var p = data.comments[i]; for (var j = 0; j < p.comments.length; j++) { comments.push(p.comments[j]);
}
}
data.comments = comments;
return data;
};
var crawler = new Crawler(configs); crawler.start();
//牛妹双11快乐,大家双11快乐(*^▽^*)
查看原帖
点赞 3
相关推荐
11-25 00:31
上海交通大学 BSP工程师 点赞 评论 收藏
分享
11-26 18:30
武汉大学 生物工程 点赞 评论 收藏
分享
牛客热帖
正在热议
# 拼多多求职进展汇总 #
229613次浏览 2025人参与
# ai智能作图 #
18149次浏览 234人参与
# 北方华创开奖 #
65466次浏览 545人参与
# 25届秋招总结 #
389831次浏览 3890人参与
# 硬件兄弟们 甩出你的华为奖状 #
77474次浏览 623人参与
# 地方国企笔面经互助 #
6350次浏览 15人参与
# 阿里云管培生offer #
56802次浏览 1726人参与
# 实习,投递多份简历没人回复怎么办 #
2433111次浏览 34686人参与
# 哪些公司校招卡第一学历 #
32204次浏览 100人参与
# 在职场上,你最讨厌什么样的同事 #
5461次浏览 78人参与
# 实习与准备秋招该如何平衡 #
721584次浏览 8540人参与
# 我的实习求职记录 #
6114791次浏览 83913人参与
# 工作中,你有没有遇到非常爱骂人的领导? #
4579次浏览 46人参与
# 如果再来一次,你还会选择这个工作吗? #
107361次浏览 1081人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
9552次浏览 200人参与
# 实习想申请秋招offer,能不能argue薪资 #
35570次浏览 308人参与
# 牛客租房专区 #
4328次浏览 119人参与
# 腾讯求职进展汇总 #
206876次浏览 1693人参与
# 如果有时光机,你最想去到哪个年纪? #
27375次浏览 569人参与
# 中兴求职进展汇总 #
467539次浏览 2436人参与
# 华为工作体验 #
109853次浏览 854人参与
# 还记得你第一次面试吗? #
31140次浏览 441人参与