
一、先来看下三款电脑评价的词云图



3 用Python爬取京东自营DELL G7 i7-9750H的评论绘制成词云图

下文以爬取Thinkpad T490s笔记本电脑的评论为例,给大家展示如何爬取京东评论并做成词云图。

step1:浏览器(一般用火狐和Google我用的360
)中打开京东 -> 搜索T490s
step2:选择你喜欢的型号进入链接

step4:点击商品评价 -> 点击productPageComments.action -> 到Headers中找到代码所需的参数


1 用Python中的Requests库获取网站评论信息
import requests as reurl = "https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100004380824&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1"headers = {'User-Agent':'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36','Request Method':'Get','callback':'fetchJSON_comment98'}req = re.get(url, timeout=30, headers=headers)
2 用Python中的json库把评论信息解析成规范格式
import json #导入json模块#先把不用的内容去掉,再用json库解析它,得到我们想要的内容jd=json.loads(req.text.lstrip("fetchJSON_comme rstrip nt98vv375(").rstrip(");"))#打印评论信息j=1for i in jd['comments']:print(str(j)+"、"+i['content'])j+=1
代码解析:
jd:是一个字典,对应comments键存的是一个列表,列表里的元素是该页面每个人评论的字典,获取字典中content的信息即为我们要的评论信息。
打印结果:
<class 'dict'>1、屏幕效果:屏幕不错,很轻薄超出想象,散热不错2、轻薄程度:比我想象的要薄,非常适合出差办公,棒棒的3、这个配置性能优越很正常了,最满意的是质量很轻很轻很轻4、电脑很好,对得起这个价格,物流也很迅捷,好评!好评!好评!5、很好的笔记本电脑,不错的选择6、很好 快递小哥送货快 周到7、散热性能:散热挺好轻薄程度:身 轻便其他特色:用来做软件开发,挺好,几天使用下来没发现什么不适,8、运行速度:挺快屏幕效果:清晰细腻散热性能:一般。用到现在3.5小时键盘中间、右侧挺烫手外形外观:显得很专业的黑方块,有安全感轻薄程度:可以9、运行速度:快速屏幕效果:喜欢散热性能:不错外形外观:喜欢轻薄程度:手感好10、运行速度:快屏幕效果:好散热性能:还行外形外观:小巧轻薄程度:薄
3 批量获取评论信息
import requests,jsonimport random#headers的内容在Headers里面都可以找到headers = {'User-Agent':'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36','Request Method':'Get','callback':'fetchJSON_comment98'}content = [] #存放评价def crawler(url):req=requests.get(url ,timeout=random.uniform(30, 50),headers=headers) # 获取网页信息jd=json.loads(req.text.lstrip("fetchJSON_comment98vv375(").rstrip(");")) #先把不用的内容去掉,再用json库解析for i in jd['comments']:content.append(i['content'])#爬取自营T490s型号i7-8565U的评论for i in range(20):url="https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100004380824&score=0&sortType=5&page={}&pageSize=10&isShadowSku=0&fold=1".format(i)crawler(url)# 爬取自营T490s型号i5-8265U的评论for i in range(20):url="https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=54331361555&score=0&sortType=5&page={}&pageSize=10&isShadowSku=0&fold=1".format(i)crawler(url)
注:由于京东中评论属于第几页由page={}来控制,所以往这个{}里依次填入页的编号来控制进入下一页。

import matplotlib.pyplot as plt #数学绘图库from PIL import Imageimport numpy as np #科学数值计算包,可用来存储和处理大型矩阵import pandas as pdimport jieba #分词库from wordcloud import WordCloud, ImageColorGenerator,STOPWORDS #词云库import os.pathcontent_1 = "/".join(content)cut_text = jieba.cut(content_1,cut_all=False) # 结巴分词#:cut_all参数可选, True为全模式,False为精确模式,默认精确模式result= "/".join(cut_text) #必须给个符号分隔开分词结果,否则不能绘制词云replace = ['运行','程度', '其他','非常','外观','屏幕','效果','外形','还是']for i in replace:if i == '运行':result_1 = result.replace(i,'T490s')else:result_1 = result_1.replace(i,'')wordcloud = WordCloud(font_path="./电脑原始图片/simhei.ttf",stopwords=STOPWORDS,background_color='white',max_font_size=60).generate(result_1)plt.imshow(wordcloud)plt.axis('off')plt.show()

wordcloud.to_file(r'T490s.png') #保存图片你可能感兴趣:

长按识别上方二维码学习更多Python知识
喜欢这篇文章
就请点个 “ 在看”吧
原文作者:阿黎逸阳的代码;如有侵权,请联系管理员删除。