学习python有一段时间了,今天写写对京东的手机商品数据收集,权当练手,留个档
环境
win10、python3.7、pycharm
一.分析接口
在京东搜索手机这一标签,获得搜索主页面的url为
https://search.jd.com/Search?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8&wq=%E6%89%8B%E6%9C%BA&pvid=c8b4672680884a47b2787147fe7a04a4
多次尝试后可得出地址规律为
"https://search.jd.com/Search?keyword="+ 商品名 + "&enc=utf-8&page=" + 页面号*2-1
接下来我们发现,要采集的数据中评论数是ajax异步加载的,因此无法通过requests获得
我在京东的网页源代码内看到这么一段代码
SEARCH.get_comment_nums = function(B) {
$.getJSON("//club.jd.com/comment/productCommentSummaries.action?referenceIds=" + B.replace(/J_/g, "") + "&callback=?", function(F) {
if (typeof (F) != "object" || typeof (F.CommentsCount) != "object") {
return false
}
for (var E = 0, D = F.CommentsCount, C = D.length; E < C; E++) {
if (typeof (D[E].CommentCountStr) != "undefined" && !D[E].SensitiveBook) {
$("#J_comment_" + D[E].SkuId).html(D[E].CommentCountStr);
$("#J_comment_" + D[E].SkuId).parent(