最近想换电脑,又有点不确定买哪一款。所以决定爬取京东上电脑评论,做个参考,并把最终结果绘制成词云图。

  

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

  

1 用Python爬取京东自营ThinkPad T490s的评论绘制成词云图


  

2 用Python爬取京东自营MacBook Pro的评论绘制成词云图


  

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

  

  可以发现这三款电脑的公共特点是轻薄、速度,ThinkPad和MacBook中出现办公字样,戴尔中出现了游戏字样。整体来看这三款电脑的评价都还可以,不错、喜欢、满意等字样还是比较多。

  :T490s、MacBook、DELL_G7不是评论中的主要词,是我为了看起来直观故意放进去的。

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

  

二、如何爬取京东评论

由于京东使用动态网址,所以代码中的headers之类,要根据所要爬取的内容查找,以下是获取这些内容的具体步骤:

step1:浏览器(一般用火狐和Google我用的360)中打开京东 -> 搜索T490s

step2:选择你喜欢的型号进入链接

step3:按键盘F12 -> ctrl+r -> 在Filter里搜索comment

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


  

三、爬虫代码解析

1 用Python中的Requests库获取网站评论信息
import requests  as re  #导入requests模块#把Headers中的Requests URL赋值给url
url = "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中对应关键词后面的内容填入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'}
#获取url中的所有信息
req = re.get(url, timeout=30, headers=headers)
#req = re.get(url)

代码解析:

url = :待爬取网页的url链接,相当于指定爬取评论的路径,本文对应填入上文step4中标注的Requests URL值。

headers = :待爬取网页的首部信息,把上文step4中标注的Headers中关键词后面的内容对应填入即可。

req =:用get方法获取待爬网页的所有信息。

1:有些网站访问时必须带有浏览器等信息,如果不传入headers就会报错,所以本例中加入了头部的一些信息。我试了一下该链接不加首部信息也可以正常运行,和加了首部信息得到的结果完全一致。

2:如果对Requests库不了解,可以参见[【Python】【爬虫】Requests库详解]

  

2 用Python中的json库把评论信息解析成规范格式
import json  #导入json模块#先把不用的内容去掉,再用json库解析它,得到我们想要的内容
jd=json.loads(req.text.lstrip("fetchJSON_comme rstrip nt98vv375(").rstrip(");"))
#打印评论信息
j=1
for i in jd['comments']:print(str(j)+"、"+i['content'])j+=1

代码解析:

lstrip:当括号里的内容为空,默认删除开头空白符(包括\n、\r、\t、’ ',即:换行、回车、制表符、空格)。如果不为空,该函数会把括号内的参数拆解成一个个的字符,然后把头部的这些字符去掉。

rstrip:和lstrip函数一样,只不过是去掉右边的(尾部)。

json.loads:将json格式数据转换为字典,或者说是将字符串转化为字典,方便进一步获取评论信息。

jd:是一个字典,对应comments键存的是一个列表,列表里的元素是该页面每个人评论的字典,获取字典中content的信息即为我们要的评论信息。

打印结果:

<class 'dict'>
1、屏幕效果:屏幕不错,很轻薄超出想象,散热不错
2、轻薄程度:比我想象的要薄,非常适合出差办公,棒棒的
3、这个配置性能优越很正常了,最满意的是质量很轻很轻很轻
4、电脑很好,对得起这个价格,物流也很迅捷,好评!好评!好评!
5、很好的笔记本电脑,不错的选择
6、很好 快递小哥送货快 周到
7、散热性能:散热挺好
轻薄程度:身 轻便
其他特色:用来做软件开发,挺好,几天使用下来没发现什么不适,
8、运行速度:挺快
屏幕效果:清晰细腻
散热性能:一般。用到现在3.5小时键盘中间、右侧挺烫手
外形外观:显得很专业的黑方块,有安全感
轻薄程度:可以
9、运行速度:快速
屏幕效果:喜欢
散热性能:不错
外形外观:喜欢
轻薄程度:手感好
10、运行速度:快
屏幕效果:好
散热性能:还行
外形外观:小巧
轻薄程度:薄

  

3 批量获取评论信息
import requests,json
import 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)

  本节代码是1、2小节代码的汇总,只不过把爬取页面内容并解析成特定格式的语句定义成了函数,反复用循环去调用,从而把单页的评论连接成汇总的评论。由于T490s的评论只要600+条,小于20页,所以取了20这个值。

  :由于京东中评论属于第几页由page={}来控制,所以往这个{}里依次填入页的编号来控制进入下一页。

  

四、用获取的评论信息绘制词云图

接下来把上文获取的评论,绘制成词云图

import matplotlib.pyplot as plt                          #数学绘图库
from PIL import Image
import numpy as np                                      #科学数值计算包,可用来存储和处理大型矩阵
import pandas as pd
import 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()

代码解析:

content_1 : 用join函数把爬取评论列表中的元素用/连接成字符串;

cut_text: 用jieba分词把content_1的内容分成一个一个的词,方便统计绘制成词云;

for: 把词云中’运行’这个词替换成T490s(只是为了看起来清晰),另一些无意义的词删除;

wordcloud: 绘制词云图;

plt.axis: 去除坐标轴;

plt.show(): 在jupyter中显示图片.

结果:

也可以用如下语句导出图片

wordcloud.to_file(r'T490s.png')  #保存图片

  本文是本人使用Python库进行爬虫的非商业行为,如有问题,请指正。如果想获取文中所有可直接执行的代码,可在公众号中回复"爬取京东评论",即可免费获取。如对代码有疑问,可以到公众号中私信我。

你可能感兴趣:
孤立森林
风控建模整体流程
用Python绘制皮卡丘
用Python绘制词云图
Python入门干货经验(免费提供资料)
用Python绘制杨紫作品集动态二维码
【Python】【爬虫】Requests库详解

长按(扫一扫)识别上方二维码学习更多Python和建模知识

【Python爬虫】最近想买电脑,用Python爬取京东评论做个参考相关推荐

  1. python爬虫用什么电脑好_【Python】【爬虫】最近想买电脑,用Python爬取京东评论做个参考...

    最近想换电脑,又有点不确定买哪一款.所以决定爬取京东上电脑评论,做个参考,并把最终结果绘制成词云图. 一.先来看下三款电脑评价的词云图 1 用Python爬取京东自营ThinkPad T490s的评论 ...

  2. Python爬虫:最牛逼的 selenium爬取方式!

    Python爬虫:最牛逼的 selenium爬取方式! 作为一个男人 在最高光的时刻 这是小编准备的python爬虫学习资料,加群:700341555即可免费获取! Python爬虫:最牛逼的 sel ...

  3. Python爬虫:运用多线程、IP代理模块爬取百度图片上小姐姐的图片

    Python爬虫:运用多线程.IP代理模块爬取百度图片上小姐姐的图片 1.爬取输入类型的图片数量(用于给用户提示) 使用过百度图片的读者会发现,在搜索栏上输入关键词之后,会显示出搜索的结果,小编想大多 ...

  4. Python爬虫实例 wallhaven网站高清壁纸爬取。

    文章目录 Python爬虫实例 wallhaven网站高清壁纸爬取 一.数据请求 1.分析网页源码 2.全网页获取 二.数据处理 1.提取原图所在网页链接 2.获取高清图片地址及title 三.下载图 ...

  5. python爬虫--Scrapy框架--Scrapy+selenium实现动态爬取

    python爬虫–Scrapy框架–Scrapy+selenium实现动态爬取 前言 本文基于数据分析竞赛爬虫阶段,对使用scrapy + selenium进行政策文本爬虫进行记录.用于个人爬虫学习记 ...

  6. Python爬虫之scrapy框架360全网图片爬取

    Python爬虫之scrapy框架360全网图片爬取 在这里先祝贺大家程序员节快乐,在此我也有一个好消息送给大家,本人已开通了微信公众号,我会把资源放在公众号上,还请大家小手动一动,关注过微信公众号, ...

  7. Python爬虫系列之抖音热门视频爬取

    Python爬虫系列之抖音热门视频爬取 主要使用requests库以及手机抓包工具去分析接口 该demo仅供参考,已经失效,需要抖音2019年5月最新所有接口请点击这里获取 抖音资源获取接口文档请点击 ...

  8. Python爬取京东评论(汇编)

    目录 一.爬取京东数据详细链接 (一)爬取京东评论 1.文章一 2.文章二 (二)爬取京东商品信息 1.文章一 二.爬虫过程中遇到的一些问题及解决资料 (一)解决爬虫中Response[200]返回值 ...

  9. 分布式爬虫系统设计、实现与实战:爬取京东、苏宁易购全网手机商品数据+MySQL、HBase存储

    1 概述 在不用爬虫框架的情况,经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似MySQL.HBase等. 基于面向接口的编码思想来开发,因此这个系统具有一定的扩展性,有 ...

最新文章

  1. CSDN-markdown编辑器
  2. 使用C/C++发展Web系统开源
  3. Kettle提高表输出写入速度(每秒万条记录)
  4. MxGraph从入门到精通之2:HelloWorld程序解析
  5. 字节跳动面试题:“请你描述下 Spring Bean 的生命周期?”
  6. 代码: 0x80131500_微软应用商店错误代码“0x80131500”怎么修复?
  7. 给 EF Core 查询增加 With NoLock
  8. 按照前序遍历和中序遍历构建二叉树
  9. vue-day01-vue模板语法
  10. 用PaddlePaddle(飞桨)实现minist数据集的GAN生成
  11. NAS 百科 —— http://baike.baidu.com/item/NAS%E7%BD%91%E7%BB%9C%E5%AD%98%E5%82%A8
  12. amd显卡更新最新驱动鼠标顿卡的解决方法
  13. Python实战从入门到精通第十五讲——定义匿名或内联函数
  14. Android中如何Hook住JNI方法
  15. pymysql封装总结
  16. Hbase安装与伪分布式配置
  17. Leetcode应该怎么刷?【笔试】
  18. 数据地图绘制工具汇总
  19. 23种设计模式——代理模式
  20. Win10操作系统语言中文转英文设置步骤

热门文章

  1. PhotoShop 官方网页版推出测试
  2. 灰卡测白平衡使用方法
  3. python父亲节礼物_30款爸爸喜欢的礼物清单快收下!父亲节礼物挑选指南,适合送爸爸礼物就在这啦!...
  4. 中国卫星电话行业市场供需与战略研究报告
  5. 解决风扇狂转不止的好方法
  6. 自己做一个短链服务,设计思路分享!
  7. 二叉搜索树的创建以及删除
  8. 怎么利用快手引流?快手引流实用技巧
  9. Linux常用命令 Linux虚拟机操作指令(更新中)
  10. 计算机 睡眠 无法打印,[投诉]打印机手动开启休眠后不能用