Advertisement

京东商品评论信息爬取及词云图制作——python爬虫(步骤详细,初学可做)

阅读量:

本项目介绍了一种利用Python爬取京东商品评论并制作词云图的方法。通过使用京东的爬虫工具(包括python、pandas、requests、xpath、json、time等库),可以实现从京东商品页面快速获取商品评论信息。具体流程包括:1)通过手动输入商品编号和页码获取评论信息;2)将评论数据存储为CSV文件;3)利用jieba对评论内容进行词云图制作。项目还提供了完整的爬取和词云图制作代码,包括如何处理数据、生成词云图等。

目录

一、介绍

1.摘要:

2.所需工具:

二、效果展示

1.评论信息表格

2.词云图​编辑

三、爬取过程

1.导入所需模块

2.UA伪装

3.评论信息所在网址获取

4.利用input语句输入商品编号实现评论信息爬取

5.利用requests获取html

6.json文件转换为dict

7.实现翻页功能

8.重复上方5,6的步骤

9.获取评论内容、产品颜色、产品型号

10.借助pandas将信息存储为csv文件

11.设置睡眠时长控制数据爬取翻页时间

四、评论信息爬取完整代码展示

五、词云图制作流程

1.导入所需模块

2.导入评论信息所在文件

3.利用jieba对字段进行切分

4.将列表数据转换为字符串

5.利用wordcloud进行词云图制作

六、词云图制作完整代码展示


一、介绍

1.摘要:

本篇内容重点阐述了借助Python语言在京东平台高效获取商品评论信息的技术方法,并详细说明了词云图制作的具体流程。案例研究选取了某知名店铺的小米十四手机,收集了该商品的数百条真实用户反馈。其中,采用手动输入商品编码的方式,可以实现"一机多用"的高效数据获取模式,从而完成不同商品信息的批量爬取任务。

2.所需工具:

爬虫:python、pandas、requests、xpath、json、time

词云图:python、jieba、wordcloud

二、效果展示

1.评论信息表格

f5aa49d57a2bbea0d55ff28f75401444.png

2.词云图

941755dd680679ec1d1cb2459677dfc4.png

三、爬取过程

1.导入所需模块

复制代码

2.UA伪装

复制代码

建议直接复制粘贴

获取方式:在商品网页右键点击,依次进行——检查网络设置——打开Network属性——按F5刷新选择第一项——拖动至最底部完成获取User-Agent。

详细方法见上篇[

icon-default.png?t=O83A

该算法通过构建高效的优化框架,实现了对大规模数据集的快速处理能力。在理论分析方面,我们成功推导出该算法的收敛性证明,为算法的可靠性提供了有力支持。此外,通过引入创新性的加速机制,显著提升了算法的运行效率。在实验部分,我们对算法的性能进行了全面评估,结果表明该方法在处理复杂问题时展现出卓越的适应能力。最后,我们对算法的实现细节进行了深入探讨,并给出了具体的代码实现方案,为实际应用提供了完整的技术支持。

3.评论信息所在网址获取

(1)注意:

目前需要的链接与过去不同的是,无法通过访问"商品评价"来获取,而是无法获取评论信息。

(2)真实链接查找方法

右键点击——执行网络检查——进入网络设置——页面刷新后,在图示界面的左侧找到所需设置,右侧显示的request url即为目标访问地址

url=‘https://api.m.jd.com/?appid=item-v3&operationId=商品条目&createTime=1700188551707&client=pc&clientVersion=1.0.0& t=1700188551707&loginType=3&uuid=122270672.1700188238960301464362.1700188239.1700188239.1700188239.1& productId=10089055921527&default评分为0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1&bbtf=&shield='

c935be5a074606dd7fe5eee6895f79ed.png

然后选择右侧Preview即可看见我们所需的评论信息,是一个json文件

c6f9980830b890dff9f08e5bafbba740.png

4.利用input语句输入商品编号实现评论信息爬取

本网页商品编号如图:

5fc5bb23a74fab5ac69453fe9b466305.png

通过对比上方网址,可以得知,网址中的productId即为商品编号,从而生成新网址链接。

复制代码

5.利用requests获取html

复制代码

6.json文件转换为dict

如前所述,评论信息被封装在JSON文件中。因此,我们可以通过Python的json模块将JSON文件解析为可识别的字典结构。代码如下:

复制代码

7.实现翻页功能

maxPage代表的是最大页码值,从图表中可以看出该网页的最大页码值为22,因此通过for循环控制page的数值,可以实现翻页功能的自动化操作。代码实现如下:

cc74fc6f00bac06b95024dfc93d794d9.png
复制代码

8.重复上方5,6的步骤

由于运用for循环使url发生改变,所以要在for循环内重复5,6步骤

注意:自此以下所有步骤都要包含在7的for循环内部

复制代码

9.获取评论内容、产品颜色、产品型号

在继续使用for循环时,逐一获取评论内容、产品颜色和产品型号的列表。内容涉及字典中使用key取值以及列表的append操作。代码如下

复制代码

10.借助pandas将信息存储为csv文件

复制代码

请注意,有些用户可能会遇到与我相同的困扰。最初我将编码设置为encoding="utf-8",但在Excel中打开后却显示为乱码。通过实验发现,采用utf-8-sig编码能够有效解决问题。

11.设置睡眠时长控制数据爬取翻页时间

这一步个人感受是使数据爬取过程像人在浏览一样,防止被察觉。

复制代码

四、评论信息爬取完整代码展示

复制代码
 import requests

    
 import json
    
 import pandas as pd
    
 import time
    
 #应用input语句实现手动输入商品编号和页码来获取评论
    
 productid=input('请输入商品编号:')
    
 headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)\
    
 Chrome/119.0.0.0 Safari/537.36'}
    
 url=f'https://api.m.jd.com/?appid=item-v3&functionId=pc_club_productPageComments&client=pc&clientVersion=1.0.0&\
    
 t=1700188551707&loginType=3&uuid=122270672.1700188238960301464362.1700188239.1700188239.1700188239.1&\
    
 productId={productid}&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1&bbtf=&shield='
    
 json_html=requests.get(url,headers=headers).text
    
 #将json字符串转换为字典格式
    
 dict_data=json.loads(json_html)
    
 max_page=dict_data['maxPage']
    
 for num in range (1,max_page+1):
    
     new_url=f'https://api.m.jd.com/?appid=item-v3&functionId=pc_club_productPageComments&client=pc&clientVersion=1.0.0&\
    
     t=1700188551707&loginType=3&uuid=122270672.1700188238960301464362.1700188239.1700188239.1700188239.1&\
    
     productId={productid}&score=0&sortType=5&page={num-1}&pageSize=10&isShadowSku=0&fold=1&bbtf=&shield='
    
     json_html = requests.get(new_url, headers=headers).text
    
     dict_data = json.loads(json_html)
    
     comments_list=dict_data['comments']
    
     content_list=[]
    
     color_list=[]
    
     type_list=[]
    
     for x in comments_list:
    
     comment=x['content']
    
     content_list.append(comment)
    
     for y in comments_list:
    
     color=y['productColor']
    
     color_list.append(color)
    
     for z in comments_list:
    
     type=z['referenceName']
    
     type_list.append(type)
    
     all_data=pd.DataFrame({'评论内容':content_list,'产品颜色':color_list,'产品型号':type_list})
    
     all_data.to_csv('D:/ceshi京东商品评论信息爬取.csv',mode='a',encoding="utf-8-sig")
    
     time.sleep(3)

五、词云图制作流程

1.导入所需模块

复制代码

2.导入评论信息所在文件

复制代码

3.利用jieba对字段进行切分

复制代码

4.将列表数据转换为字符串

由于wordcloud不支持列表,所以要将数据转换为字符串

复制代码

5.利用wordcloud进行词云图制作

(1)参数配置

复制代码

height和width分别表示词云图的高度和宽度即宽和长

background_color表示背景图颜色

font_path表示索要设置的字体路径

scale表示字体大小

stopwords表示不需要参与词云图制作的词

tip:font_path查找方法

在C盘的Windows系统中,进入Fonts设置,点击选定字体后,右键属性中的常规选项中,查看第一行内容即可获取font_path变量。

(2)jieba字段导入和词云图导出

复制代码

六、词云图制作完整代码展示

复制代码
 import jieba

    
 import wordcloud
    
 f=open('D:/小米十四评论.txt',encoding='utf-8')
    
 data=f.read()
    
 data_list=jieba.lcut(data)
    
 str1=" ".join(data_list)
    
 wc=wordcloud.WordCloud(
    
     height=300,
    
     width=500,
    
     background_color='white',
    
     font_path='STZHONGS.TTF',
    
     scale=15,
    
     stopwords={"的",'了','手机','非常','很','!','也',"小米",'我','是','用'}
    
 )
    
 wc.generate(str1)
    
 wc.to_file('D:/小米十四词云图8.png')

全部评论 (0)

还没有任何评论哟~