京东手机评论的爬取

开篇

做论文的时候,最多接触的就是标准的数据集,几乎不需要太多的结构化处理,下载下来就是可以直接加载使用的数据,课题是有关评论分析的,但是论文针对的都是英文数据,而国内电商平台其实积累了大量的评论数据,没有办法通过官方渠道获取,那么我们就写个爬虫自己爬吧,我没有系统地学过爬虫,所以挑了一个比较好爬的网站。

获取评论存储的地址

首先我们选择一个想要爬取的商品,打开它的网址,这边我选择的是iphone8的手机评论

这里最好使用谷歌浏览器,接下来就是需要我们去获取评论的存储网页啦,我们右击网页,点击检查,这时候会出现京东网页的代码。

点击network,将disable cache选上,我们主要要查找js网页,所以点上js,这时候你查找什么网页都没有,所以刷新一下网页

这时候嵌套的网页就全出来了,这时候你输入product

这下就找到我们要爬取的网页了。复制它的request url的地址放到地址栏里面打开。

网页打开后就是这样的,这就是我们需要爬取的内容,里面囊括了我们需要的评论信息,是以json的格式存储的。有了地址我们就可以用python把它们一个个抓下来。下面是代码

# -*- coding: utf-8 -*-
import urllib.request
import json
import time
import random

def crawlProductComment(url):

    #读取原始数据(注意选择gbk编码方式)
    html = urllib.request.urlopen(url).read().decode('gbk')

    #从原始数据中提取出JSON格式数据(分别以'{'和'}'作为开始和结束标志)
    jsondata = html[27:-2]
    #print(jsondata)
    data = json.loads(jsondata)

    #print(data['comments'])
    #print(data['comments'][0]['content'])
    #遍历商品评论列表
    comments = data['comments']
    return comments



data = []
for i in range(0,350):
    #iphone8评论链接,通过更改page参数的值来循环读取多页评论信息
    url = 'https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv89597&productId=5001175&score=0&sortType=5&page=' + str(i) +'&pageSize=10&isShadowSku=0&fold=1'
    comments = crawlProductComment(url)
    data.extend(comments)
    #设置休眠时间
    time.sleep(random.randint(31,33))
    print('-------',i)


with open('xiaomi_note_3.json','w') as f:
    json.dump(data,f)

猜你喜欢

转载自blog.csdn.net/ding_xiaofei/article/details/80324671