【Python爬虫】采集电商商品评价信息

news/2024/10/31 3:21:18/

目录

    • 一、数据采集逻辑
    • 二、数据Schema
    • 三、数据爬取
      • 1.导入库
      • 2.对爬虫程序进行伪装
      • 3.抓取商品评论信息
      • 4.防止反爬,每爬取一页数据后,设置程序休眠环节
    • 四、数据存储
      • 1. 存储到csv
    • 2.存储到数据库

一、数据采集逻辑

在进行数据采集之前,明确哪些数据为所需,制定数据Schema为爬取工作做出要求,并根据数据Schema制定出有针对性的爬取方案和采集逻辑。

Python助学大礼包,点击领取福利

在这里插入图片描述

二、数据Schema

在这里插入图片描述

三、数据爬取

抓取京东平台任一商品的评论信息,此案例抓取的商品是某一店铺的车厘子评价信息。

评论信息是由JS动态加载的,所以直接抓取商品详情页的URL并不能获得商品评论信息。因此我们需要先找到存放商品评价信息的文件,通过使用浏览器的开发者工具进行查找。

目标URL地址:

https://wqs11.jd.com/data/coss/recoverydata/45/fe2c4ab59833605dc85b41b408b70e3d.shtml?tpl=index?err=52

通过发现可知,productId为当前商品的商品Id,page为页码(从0开始),爬取该商品的所有评价信息只需要改变page参数即可。(京东商品评价页只显示前100页,所以page最大值为99)

1.导入库

import random
import requests
import json
import re
import csv
import time
import pymysql

2.对爬虫程序进行伪装

header = {'refer': 'https: // item.jd.com /','cookie': '','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.50'}

3.抓取商品评论信息

将python程序伪装成浏览器后,就可以对评论信息进行爬取,在前面的分析中,productId和page为重要参数,在本案例中爬取的商品为车厘子,productId已确定,只需要对page进行更改即可达到需要。通过parms提交参数,使代码更有逻辑感并方便更改两个重要参数。

parm = {'callback': 'fetchJSON_comment98','productId': '10056364088483','score': '0','sortType': '5','page': page,'pageSize': '10','isShadowSku': '0','fold': '1'}
url = 'https://club.jd.com/comment/productPageComments.action'
res = requests.get(url, params=parm, headers=header)

4.防止反爬,每爬取一页数据后,设置程序休眠环节

time.sleep(random.randint(40, 80) * 0.1)
print('第%d页正在爬取' % (page + 1))爬取完成后,需要对页面进行编码,不影响后期的数据提取和数据清洗工作。使用正则对数据进行提取,返回字符串。字符串转换为json格式数据。res.encoding = 'gb18030'
html = res.text
data = re.findall('fetchJSON_comment98\((.*?)\);', html)
data = json.loads(data[0])  # 将处理的数据进行解析
comments = data['comments']
print(data['comments'])

四、数据存储

1. 存储到csv

# 写入csv文件
f = open("evalution_data.csv", "a", newline='', encoding='gb18030')
header = ["id", "content", "creationTime", "score", "productColor", "productSize"]
# 创建一个DictWriter对象,第二个参数就是上面创建的表头
writer = csv.DictWriter(f, header)
writer.writeheader()for i in comments:id = i['id']content = i['content']creationTime = i['creationTime']score = i['score']productColor = i['productColor']productSize = i['productSize']writer.writerow({"id": id, "content": content, "creationTime": creationTime, "score": score, "productColor": productColor,"productSize": productSize})
f.close()

2.存储到数据库

# 写入数据库
conn = pymysql.connect(host='', user='', password='', port=, db='')
cursor = conn.cursor()for i in comments:id = i['id']content = i['content']creationTime = i['creationTime']score = i['score']productColor = i['productColor']productSize = i['productSize']sql = "insert into evalution_data(id,content,creationTime,score,productColor,productSize) values('%d','%s','%s','%d','%s','%s')"cursor.execute(sql)conn.commit()cursor.close()
conn.close()

请添加图片描述

↓ ↓ ↓ 加下方名片找我,直接拿源码还有案例 ↓ ↓ ↓

http://www.ppmy.cn/news/148724.html

相关文章

绝不可错过!R语言与ggplot2实现SCI论文数据分析神器

一、介绍 1.1 R语言和ggplot2 语言是一种强大的数据分析和统计建模工具,具有广泛的应用领域。 ggplot2是基于R语言的数据可视化工具,具有强大的绘图功能和灵活性。 1.2 数据分析中的重要性 R语言和ggplot2在数据分析中具有广泛的应用,能够帮助…

DOS的一个小工具 LOIC

分享DOS的一个小工具 LOIC LOIC 这个工具还是挺出名的DOS工具 DoS概述 DoS(Denial of Service,拒绝服务)攻击是指攻击者利用系统及协议漏洞大量消耗网络带宽以及系统CPU、内存等资源,使得其他合法用户不能及时得到服务器的响应,DoS攻击即“一对一”的攻…

w ndows 那个比较好用,DOS工具箱哪个好用?DOS工具箱盘点

如果PC设备中并没有安装光驱、软驱且需要进入Dos执行各种操作的话,一款实用的DOS工具箱无疑是必不可少的。那么,DOS工具箱都有哪些?DOS工具箱哪个比较好用呢?针对这一问题,小编今天为大家带来了DOS工具箱盘点。 1.矮人…

C++ 的 emplace_back 和 push_back(含相应的 C++ 代码)

在 C 中,emplace_back 和 push_back 都是向容器中添加元素的方法,但它们的实现方式和使用场景略有不同。 emplace_back emplace_back 是 C11 标准中引入的一个方法,用于向容器中添加一个元素,它与 push_back 类似,但…

linux下制作pe启动盘工具,自己动手定制winpe dos工具箱迷你linux u盘启动盘

z和* .xpm.gz. 4.安装maxdos和airendos,然后将目录maxdos和ados复制到U盘的根目录. 然后,您可以卸载maxdos和ados. 然后删除ados下除argj目录之外的所有文件,然后将argj目录下的文件移至ados,然后删除argj目录. 删除两个目录中的一…

maven仓库清理缓存文件(dos工具)

1.使用过maven的人都应该知道,maven下载jar包时,有时由于网络问题,会造成文本未下载完毕,残留.lastUpdated文件,下次使用pom时,由于该jar包已被cached缓存,又无法更新;特别是残留的文…

常见的DoS攻击防御方式

常见的DoS攻击防御方式 ## 攻击防御 DoS攻击(Denial of Service attack) DoS是Denial of Service的简称,即 拒绝服务 ,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计…

Dos下的edit命令

edit是dos下的一个文本编辑工具,接下来进行一点简单的介绍。 首先通过cmd进入dos命令行界面,当前默认的目录为C:\Users\administrator,我们首先通过cd命令切换到c盘的根目录下c:\ 接下来输入edit,进入到edit工具界面,同时输入三行文本数据如下…