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日

相关文章

  • python能做什么 python的含义

    Python能做什么?Python的含义 Python是一种高级编程语言,具有简单易学、可读性强、可移植性好等特点。Python可以用于多种应用场景,例如Web开发、数据分析、人工智能等领域。本文将介绍Python的含义和两个示例说明。 1. Python的含义 Python是一种高级编程语言,由Guido van Rossum于1989年发明。Python…

    云计算 2023年5月16日
    00
  • 【Linux云计算架构:第一阶段-Linux操作系统入门到精通】第20章——条件判断和流程控制语句If

    本节所讲内容:20.1 read命令键盘读取变量的值20.2 流程控制语句if20.3 test测试命令20.4 流程控制过程中复杂条件和通配符20.5 实战-3个shell脚本实战 20.1 read命令键盘读取变量的值从键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合。该命令可以一次读取多个变量的值,变量和输入的值都需要使用空格隔开。在re…

    云计算 2023年4月13日
    00
  • Nginx 解决WebApi跨域二次请求以及Vue单页面的问题

    让我来详细讲解一下“Nginx 解决WebApi跨域二次请求以及Vue单页面的问题”的完整攻略。 什么是跨域请求? 在Web开发中,由于同源策略的限制,当一个资源从与该资源本身所在的服务器不同的域或者端口请求一个资源时,资源共享将会受到限制,这种情况被称作“跨域”。 为什么需要Nginx来解决跨域请求? Nginx是一款高性能的Web服务器软件,拥有适用于不…

    云计算 2023年5月17日
    00
  • uniapp使用高德地图的超详细步骤

    uniapp使用高德地图的超详细步骤 在uniapp中,我们可以使用高德地图API来实现地图相关的功能。本文将提供一个完整攻略,包括如何在uniapp中使用高德地图API,并提供两个示例说明。 步骤1:获取高德地图API Key 在使用高德地图API之前,我们需要先获取一个API Key。以下是获取API Key的步骤: 访问高德地图开放平台(https:/…

    云计算 2023年5月16日
    00
  • 云计算浅谈之一:云计算介绍

      微软前一段通知,微软的云计算平台windows azure在中国的服务将会于10月1日开通。微软承诺未来90%的开发人员将从事云计算方面的工作。在这个重要的时刻,是时候提醒更多的开发人员做技术上的更新。上月有机会受邀为某培训机构的软件专业暑期班开设云计算讲座,遂将过去的工作总结了一下,发现自己都获益匪浅.现在以连载方式的发表(共五讲),以润读者.    …

    云计算 2023年4月11日
    00
  • python能做哪方面的工作

    Python 是一门高级编程语言,非常适合处理数据分析、人工智能、网络爬虫、Web 开发等领域的工作。下面来详细讲解 Python 能做哪方面的工作。 数据分析 Python 在数据分析方面拥有非常广泛的应用,主要基于以下三个库: 1. NumPy NumPy 提供了一个很好的 N 维数组包和一个快速的排序库,这使得您可以用 Python 进行快速的数学计算…

    云计算 2023年5月18日
    00
  • 云计算时代前端如何保证开源代码的安全性

    作者:京东零售  张梦雨 云技术和我们的生活息息相关,日常生活中访问的网页,刷的短视频,用的云盘等都是云计算提供的服务。那在云计算时代,前端可以做什么呢? 一、云技术与前端 在前端发展初期,前端只需完成静态页面和交互的开发即可,然后将源文件给后端部署;之后前后端分离,有了工程化的概念,前端需要自己去完成构建、打包、集成、部署,部署方式有通过CI/CD工具进行…

    云计算 2023年4月17日
    00
  • Entity Framework Core关联删除

    下面是关于“Entity Framework Core关联删除”的完整攻略,包含两个示例说明。 简介 在Entity Framework Core中,我们可以使用关联删除来删除与主实体相关联的所有从实体。在本攻略中,我们将介绍如何使用Entity Framework Core进行关联删除,包括配置关系、删除从实体等步骤。 步骤 在Entity Framewo…

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