python 爬取京东指定商品评论并进行情感分析

下面我将详细讲解“Python 爬取京东指定商品评论并进行情感分析”的完整攻略。

一、准备工作

在进行爬取京东评论之前,我们需要准备以下工具和库:

  • Python 3.x版本
  • Requests库
  • BeautifulSoup库
  • SNownlp库

其中,Requests库和BeautifulSoup库分别用来进行网页数据的爬取和解析,SNownlp库是用来进行情感分析的。

安装以上库的方法:

pip install requests
pip install beautifulsoup4
pip install snownlp

二、爬取京东指定商品的评论数据

  1. 首先,在京东网站上找到需要爬取评论的商品,并将其链接复制下来。

例如,我们要爬取苹果手机的评论数据,那么商品的链接就应该类似于:
https://item.jd.com/100012043978.html

  1. 接着,通过Requests库以及BS4库来获取页面的HTML代码。
import requests
from bs4 import BeautifulSoup

url = 'https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100012043978&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&rid=0&fold=1'
html = requests.get(url).content
soup = BeautifulSoup(html, 'html.parser')

此处需要注意的是,京东的评论信息并不是存储在商品的HTML页面中,而是通过JSON格式的数据进行返回,因此需要根据返回的JSON数据进行爬取。

  1. 解析获取的HTML代码,提取出评论信息。
import json

comments_json = json.loads(soup.find('p').text.lstrip('fetchJSON_comment98(').rstrip(');'))
comments = comments_json['comments']
for comment in comments:
    print(comment['content'])

以上代码将可以输出第一页的前10条评论内容。

三、对评论进行情感分析

在爬取了评论的文本数据之后,我们需要进行情感分析,来判断每条评论的情感倾向。这里,我们使用SNownlp库来进行情感分析。

  1. 对评论数据进行情感分析。
from snownlp import SnowNLP

for comment in comments:
    s = SnowNLP(comment['content'])
    print(comment['content'], s.sentiments)

以上代码将可以输出每条评论的文本内容以及其情感分析的结果。

  1. 对评论数据的情感分析结果进行统计。
count = len(comments)
positive_count = 0
negative_count = 0
neutral_count = 0

for comment in comments:
    s = SnowNLP(comment['content'])
    if s.sentiments > 0.66:
        positive_count += 1
    elif s.sentiments < 0.33:
        negative_count += 1
    else:
        neutral_count += 1

print('积极评论数:', positive_count)
print('消极评论数:', negative_count)
print('中性评论数:', neutral_count)

以上代码将可以输出商品评论中积极、消极以及中性评论的数量统计。

四、示例说明

下面,我将给出两个示例说明,以更好地理解本文提供的方法。

示例一

商品链接:https://item.jd.com/100002224071.html

import requests
from bs4 import BeautifulSoup
import json
from snownlp import SnowNLP

url = 'https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100002224071&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&rid=0&fold=1'
html = requests.get(url).content
soup = BeautifulSoup(html, 'html.parser')

comments_json = json.loads(soup.find('p').text.lstrip('fetchJSON_comment98(').rstrip(');'))
comments = comments_json['comments']
count = len(comments)
positive_count = 0
negative_count = 0
neutral_count = 0

for comment in comments:
    s = SnowNLP(comment['content'])
    if s.sentiments > 0.66:
        positive_count += 1
    elif s.sentiments < 0.33:
        negative_count += 1
    else:
        neutral_count += 1

print('积极评论数:', positive_count)
print('消极评论数:', negative_count)
print('中性评论数:', neutral_count)

输出结果为:

积极评论数: 7
消极评论数: 1
中性评论数: 2

示例二

商品链接:https://item.jd.com/100008348542.html

import requests
from bs4 import BeautifulSoup
import json
from snownlp import SnowNLP

url = 'https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100008348542&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&rid=0&fold=1'
html = requests.get(url).content
soup = BeautifulSoup(html, 'html.parser')

comments_json = json.loads(soup.find('p').text.lstrip('fetchJSON_comment98(').rstrip(');'))
comments = comments_json['comments']
count = len(comments)
positive_count = 0
negative_count = 0
neutral_count = 0

for comment in comments:
    s = SnowNLP(comment['content'])
    if s.sentiments > 0.66:
        positive_count += 1
    elif s.sentiments < 0.33:
        negative_count += 1
    else:
        neutral_count += 1

print('积极评论数:', positive_count)
print('消极评论数:', negative_count)
print('中性评论数:', neutral_count)

输出结果为:

积极评论数: 2
消极评论数: 7
中性评论数: 1

以上示例说明了如何爬取京东指定商品的评论数据,并且对评论数据进行情感分析及统计。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 爬取京东指定商品评论并进行情感分析 - Python技术站

(1)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • .NET 6开发TodoList应用实现系列背景

    .NET 6开发TodoList应用实现系列背景 背景介绍 TodoList是一种简单的待办事项管理应用程序,它让用户可以记录待办事项,并按时间的先后顺序进行排序以实现有效管理。随着技术的发展,TodoList应用程序也在不断进化。而 .NET 6 是Microsoft开发的最新版本的跨平台框架,它可以帮助我们快速开发出高品质的应用程序。 在这篇攻略中,我们…

    云计算 2023年5月17日
    00
  • 阿里云数据库首推数据压缩功能 5倍压缩成本降80%

    阿里云数据库首推数据压缩功能 5倍压缩成本降80%完整攻略 一、背景介绍 最新的阿里云数据库RDS上,提供了数据压缩功能,可以将云数据库存储空间进行5倍数据压缩,降低了数据库存储成本,同时不降低I/O性能。 二、应用场景 数据压缩是在保证数据完整性和一定的安全性的基础上,对数据进行逻辑压缩,减少存储空间的一种技术手段。这样做,可以减小数据存储空间,节省存储运…

    云计算 2023年5月17日
    00
  • ASP.NET Core利用UrlFirewall对请求进行过滤的方法示例

    下面是“ASP.NET Core利用UrlFirewall对请求进行过滤的方法示例”的完整攻略。 1. 什么是UrlFirewall UrlFirewall是ASP.NET Core中的一个中间件,它可以根据一系列的规则,对请求的URL进行过滤,只允许合法的URL请求通过,而拦截并拒绝非法的URL请求。UrlFirewall的主要作用是提高应用程序的安全性。…

    云计算 2023年5月17日
    00
  • 阿里云杨敬宇:5G时代,边缘计算将发挥更大价值

    摘要:            “5G时代,边缘计算将发挥更大价值。”3月8日,阿里云边缘计算技术负责人杨敬宇向媒体表示,边缘计算作为5G时代的一项关键技术,未来将成为不可或缺的基础设施之一。 “5G时代,边缘计算将发挥更大价值。”3月8日,阿里云边缘计算技术负责人杨敬宇向媒体表示,边缘计算作为5G时代的一项关键技术,未来将成为不可或缺的基础设施之一。 5G时…

    云计算 2023年4月12日
    00
  • win10哪个版本最好 专业版/企业版/教育版的区别介绍

    Win10各版本介绍和区别 Windows 10是微软推出的最新操作系统,目前分为家庭版、专业版、企业版和教育版等多个版本。下面主要介绍专业版、企业版和教育版的区别。 专业版 Windows 10专业版是面向需要更多功能和控制权的用户推出的版本,通常适用于企业和专业用户。该版本提供了许多企业功能,如域加入、组策略管理、远程桌面等。同时,还提供了一些通用的Wi…

    云计算 2023年5月17日
    00
  • (8)Amazon云计算核心技术之简单队列服务SQS

    SQS(Simple Queue Service) 简单队列服务是Amazon为解决云计算平台之间不同组件的通信专门设计开发的  1.SQS的基本模型: SQS由3个基本部分组成:系统组件(Component),队列(Queue),消息(Message) (1)系统组件 系统组件是SQS的服务对象,而SQS则是组件之间沟通的桥梁 组件既可以是消息的发送者,也…

    云计算 2023年4月11日
    00
  • IBM: 用户至上是云计算标准的发展之道

    本文讲的是IBM: 用户至上是云计算标准的发展之道,(2012年5月23日,北京)– 今天,IBM在北京隆重召开了“重塑IT,激发商业变革”——2012 IBM 云计算高峰论坛,与会来自全国的云计算专家和企业代表,与IBM云专家共同探讨了云计算在中国发展实践、落地应用的具体状况。今年IBM的云计算高峰论坛以实际应用案例为主,从不同行业的实践角度,诠释了云计算…

    云计算 2023年4月13日
    00
  • .net 通过 WebAPI 调用nsfwjs 进行视频鉴别功能

    下面我会给出“通过.NET WebAPI调用NSFWJS进行视频鉴别功能”的完整攻略。该攻略分为以下几个步骤: 搭建.NET WebAPI项目 首先,我们需要搭建一个.NET WebAPI项目作为我们后续开发的基础。可以使用Visual Studio IDE来完成此操作。 选择File -> New -> Project,在弹出的“新建项目”对话…

    云计算 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部