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

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

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里搜索commentstep4:点击商品评价 -> 点击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的信息即为我们要的评论信息。

打印结果:

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.path

content_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爬取京东评论做个参考...相关推荐

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

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

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

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

  3. python爬取京东评论怎么翻页_爬取京东网页评论(动态网页)

    1.当网页打开的方式不同时,在开发者选项找到的包含评论的文件地址不同,比如第一种,当我们找到的评论界面是含有下一页选项的时候(如下图).我们在左边文件界面发现包含评论的网页地址名字为''product ...

  4. python爬取京东评论分析_【实战好文】|爬取京东书籍评论并分析

    原标题:[实战好文]|爬取京东书籍评论并分析 这是菜鸟学Python的粉丝第10篇原创投稿 阅读本文大概需要5分钟 本篇作者:小郑同学 上周的赠书活动中,收到了楼主送的<利用Python进行数据 ...

  5. python爬取京东商品数据要先登录_手把手教你用python 爬取京东评论

    本次python实战,主要目标是利用 Python爬取京东商品评论数,如上图所示:爬取"Python之父"推荐的小蓝书,这些信息主要包括用户名.书名.评论等信息. 爬取的网址url ...

  6. python爬取京东评论_Python如何爬取京东的评价信息

    Python如何爬取京东的评价信息 模块:requests,BeautifulSoup import re import time import csv import requests from bs ...

  7. python爬取京东评论分析_Python爬取京东商品评价(动态网页的爬取)

    首先打开京东的任意几个商品页面,并观察URL,可以发现都是https://item.jd.com/+数字+.htm的格式,而且数字也随着商品的改变而改变,基本上可以确定这串数字是商品ID 之后我们找到 ...

  8. python爬取京东评论分析_Python爬取京东商品评论+制作关键字云+情感分析图

    首先我们要了解一下,我们用requests包爬取的都只是写在HTML页面上的数据,但是呢,现在很多网站的数据都是通过js代码生成的,除非你找到它,不然是爬取不到的. 首先我随意打开一个京东的商品的详情 ...

  9. python批量评论_python批量爬取京东手机评论信息及星级

    本科生在读,如有问题欢迎指正 爬取京东评论信息:评论信息是动态加载的,所以在商品详情页不能直接爬取评论. 下面以一款手机为例,详细介绍python批量爬取京东评论. 找到评论区域 image.png ...

最新文章

  1. PyTorch中nn.Module类中__call__方法介绍
  2. 《zabbix用户权限分配管理》-8
  3. html,css,js小实例,CSS和JavaScript脚本实例
  4. DataGridView 里数据的动态明细 DataGridView GridView
  5. NYOJ 5287 异 形 卵
  6. MySql安装和基本管理
  7. Git简洁教程:本地项目如何与GitHub互连
  8. cenos7上部署python3环境以及mysqlconnector2.1.5
  9. linux scp 使用简单说明
  10. 新兴IT企业特斯拉(八)——自动辅助驾驶
  11. Fiddler中文使用教程-AutoResponder
  12. 【阿里云镜像】更改阿里巴巴开源镜像站镜像之——CentOS镜像
  13. PDF怎么拆分?有哪些免费的PDF拆分软件
  14. 金山篡改浏览器主页问题(改成毒霸网址大全)
  15. 软件安装-----Windows下虚拟机的安装
  16. LVS+Keepalived高可用
  17. 公司邮件登录发邮件,在outlook邮件撤回怎么操作?
  18. 工程机械租赁行业大有可为,如何不让售后服务拖后腿?
  19. 520催泪感人表白心动文案怎么用免费的记笔记软件记录?
  20. 混合波束成形|基础:深入浅出5G,毫米波,大规模MIMO与波束赋形

热门文章

  1. NETCore部署到Linux
  2. 浙江大学python编程csdn_怎样学 Python?
  3. 安卓桌面软件_装bi小神器,让你的手机变成电脑桌面
  4. 登录Microsoft账户特别慢解决办法
  5. 音乐疗法可缓解精神分裂症状
  6. 终于知道 Java agent 怎么重写字节码了
  7. 输入存款金额m、存期(年)y和年利率r,计算并输出到期的利息p
  8. 图解各种悬挂系统优缺点
  9. VMware提示无法打开内核设备 \\.\Global\vmx86: 系统找不到指定的文件解决方案
  10. 地铁区间——接触网(吊架和汇流排)布置