python爬取京东一款手机的评论!零基础入门第一节
前言【python爬取京东一款手机的评论!零基础入门第一节】最近做了一个京东手机数据分析 , 从JD爬了一些手机的数据 , 这里简单介绍一下爬取手机评论的部分 。
一、准备信息PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
python免费学习资料以及群交流解答后台私信小编01即可
首先我们准备的数据有:
- 已知手机的id , 可以根据京东上一款手机的网址查询得到 。
- 评论所在的url: 利用google chrome打开网站 , 右键“检查” , 找到Network选项 , 然后刷新页面 , 点击商品评价 , 等待服务器向页面传递参数 。找到productPageComments点击 , 就会在右边Header中找到评论网址 。同时在header中也有cookie参数 , 将cookie参数复制到下面的代码相应位置 。
- 手机id
- 评论url网址
- cookie
#胖虎Johnny#2020.11.10import urllib.requestimport jsonimport randomimport time as time0import re,osimport pandas as pd#设置代理agents = ["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"]def product_reviews(product_id = None,p = 0,maxPage = 99):root_dir='京东手机评论_详细字典'#判断之前是否爬取过这个型号手机的评论(一种型号的手机 , 颜色和内存不同 , 但评论共享)os.makedirs(root_dir,exist_ok=True)phone_list=os.listdir(root_dir)phone_txt=str(product_id)+'.txt'if phone_txt in phone_list:print(product_id)return []#对每一页循环爬取#"maxPage": 45k_head=0while p0:# print(comments)for comment in comments:# print(comment)name = comment['referenceName']id = comment['id']con = comment['content']time = comment['creationTime']img_url = comment['userImageUrl']score=comment['score']likes=comment['usefulVoteCount']replyCount=comment['replyCount']try:productColor = comment['productColor']except:productColor = ''try:productSize = comment['productSize']except:productSize = ''item = {'name': name,'id': id,'score': score,'con': con,'time': time,'productColor':productColor,'productSize':productSize,'likes': likes,'replyCount': replyCount,'img_url': img_url,}item.update(dict_pars_info)#print(item)string = str(item)# 1.保存为csv格式item_dataframe = pd.DataFrame([item])#print(item_dataframe)if k_head==0:item_dataframe.to_csv(root_dir+'/%d.csv' % product_id,mode='w',header=True,index=False,encoding='gbk')k_head+=1else:item_dataframe.to_csv(root_dir+'/%d.csv' % product_id,mode='a',header=False,index=False,encoding='gbk')#2.保存成txtfp = open(root_dir+'/%d.txt' % product_id, 'a', encoding='gbk')fp.write(string + '\n')fp.close()print('%s-page---finish(%s/%s)' % (p,p,maxPage))else:return []p=p+1if __name__ == '__main__':phone_id = 100008348542product_reviews(product_id=phone_id)
三、结果 我们将结果保存到csv文件中 , 同时也保存了一个字典类型的txt文件 。 数据都储存在当前新建的文件夹下——京东手机评论_详细字典 。文章插图
可以看到csv中爬取的数据如上图展示 , 具体参数包括:
- 评论
- 评论id
- 点赞数
- 手机名称
- 颜色
- 版本
- 用户评分
- 评价时间
- 回复数量
四、更多 上述代码只是针对一款手机 , 若是想要python更多手机的评论 , 则需要先爬取每一款手机的id , 之后循环对id进行遍历即可 。
- 产业|前瞻生鲜电商产业全球周报第67期:发力社区团购!京东内部筹划“京东优选”
- 商务参赞柏|秘鲁海外馆正式入驻京东国际 秘鲁期待与中国更多线上经贸合作
- 耍流氓|“京东养车”来了背后:没有强运营的强管控是耍流氓?
- 浙江省|浙江省中小企业协会考察组到我县京东智联云(辽宁)直播基地彰武分中心参观考察
- 无人车|市场要闻丨京东公布无人驾驶专利,无人配送暗战打响?
- 纪贸易有限|京东关联公司申请“山海音乐节”商标
- 服务|京东京车会荣获汽车后市场"最受欢迎品牌大奖",为汽车行业提效增速
- 开放协同平|京东供应链开放平台助企业数字化转型 C2M创新中心孵化商品同比增长10倍
- 京东|商羚SaaS微商城发布,驱动产业带新增长
- 驾驶舱|极端温度-45℃到80℃仍可正常显示 京东方驾驶舱显示屏亮相中车