selenium爬取苏宁易购平台某产品的评论
目录
selenium的介绍
1、 selenium是什么?
2、selenium的工作原理
3、如何使用selenium?
webdriver浏览器驱动设置
关键步骤
代码
运行结果
注意事项
selenium的介绍
1、 selenium是什么?
用于Web应用程序测试的工具。可以驱动浏览器执行特定操作,自动按照脚本
代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样。
支持的浏览器包括IE,Firefox,Safari,Chrome,Opera等。
2、selenium的工作原理
浏览器具有webdriver驱动,这个驱动是根据不同的浏览器开发的,
不同的浏览器使用不同的webdriver驱动程序且需要对应相应的浏览器版本,
webdriver驱动程序可以通过浏览器内核控制浏览执行指定命令
3、如何使用selenium?
使用前准备: a、安装selenium库 b、驱动浏览器的内核驱动
a、安装selenium,使用pip install selenium -i https://pypi.mirrors.ustc.edu.cn/simple/
或在pycharm中安装
b、chrome内核驱动地址 360浏览器使用的就是chrome的内核,QQ浏览器使用IE,IE,
https://chromedriver.storage.googleapis.com/index.html
首先确定你的浏览器是使用哪个内核??
windows系统:下载下来的文件解压后放置在python安装地址的Scripts中
Linux和Mac系统:同上,注意:系统存在2个Python版本,确定当前运行的python
版本配置在环境变量中
爬取苏宁易购平台某款产品的优质评论与差评

webdriver浏览器驱动设置
webdriver具备多种不同浏览器的驱动,
browser = webdriver.Chrome()
browser = webdriver.Firefox()
browser = webdriver.Edge()
browser = webdriver.PhantomJS()
browser= webdriver.Safari()
其中.chrome.webdriver import WebDriver as Chrome定义了别名,Chrome代表WebDriver
关键步骤
-
初始化浏览器驱动:
- 使用
selenium的Options对象配置 Edge 浏览器,例如可以设置无界面模式。 - 初始化
webdriver.Edge,启动浏览器。
- 使用
-
抓取优质评价:
- 打开优质评价的 URL。
- 使用
find_elements查找所有评价内容,并将其保存到文件优质评价1.txt。 - 点击“下一页”按钮,循环抓取所有页的评论内容。
-
抓取差评:
- 打开差评的 URL。
- 使用
find_elements查找所有差评内容,并将其保存到文件差评.txt。 - 点击“下一页”按钮,循环抓取所有页的差评内容。
-
关闭浏览器:
- 完成抓取后,调用
driver.quit()关闭浏览器。
- 完成抓取后,调用
代码
from selenium import webdriver
from selenium.webdriver.edge.options import Options
from selenium.webdriver.common.by import By
import time# 创建 Edge 浏览器选项对象
options = Options()
# 在这里可以添加各种选项,例如:
# options.add_argument('--headless') # 无界面模式# 使用修改后的参数传递方式初始化 Edge 浏览器驱动
driver = webdriver.Edge(options=options)# 抓取优质评价
driver.get('https://review.suning.com/cluster_cmmdty_review/cluster-38249278-000000012389328846-0000000000-1-good.htm?originalCmmdtyType=general&safp=d488778a.10004.loverRight.166')# 打开文件,用于保存优质评价内容
yzpj_file = open('优质评价1.txt', 'w', encoding='utf-8')def get_py_content(file):# 查找所有包含评价内容的元素pj_elements_content = driver.find_elements(By.CLASS_NAME, 'body-content')# 遍历每个元素,将文本内容写入文件for i in range(len(pj_elements_content)):file.write(pj_elements_content[i].text + '\n')# 获取第一页的评论内容
get_py_content(yzpj_file)# 查找下一页按钮
next_elements = driver.find_elements(By.XPATH, '//*[@class="next rv-maidian "]')
print(next_elements)# 循环点击下一页,获取所有页的评论内容
while next_elements:next_element = next_elements[0]time.sleep(1) # 等待页面加载next_element.click() # 点击下一页get_py_content(yzpj_file) # 获取当前页的评论内容next_elements = driver.find_elements(By.XPATH, '//*[@class="next rv-maidian "]') # 重新查找下一页按钮# 关闭优质评价文件
yzpj_file.close()# 抓取差评
driver.get('https://review.suning.com/cluster_cmmdty_review/cluster-38249278-000000012389328846-0000000000-1-bad.htm?originalCmmdtyType=general&safp=d488778a.10004.loverRight.166')# 打开文件,用于保存差评内容
cpj_file = open('差评.txt', 'w', encoding='utf-8')def get_cp_content(file):# 查找所有包含差评内容的元素pj_elements_content = driver.find_elements(By.CLASS_NAME, 'body-content')# 遍历每个元素,将文本内容写入文件for i in range(len(pj_elements_content)):file.write(pj_elements_content[i].text + '\n')# 获取第一页的差评内容
get_cp_content(cpj_file)# 查找下一页按钮
next_elements = driver.find_elements(By.XPATH, '//*[@class="next rv-maidian "]')
print(next_elements)# 循环点击下一页,获取所有页的差评内容
while next_elements:next_element = next_elements[0]time.sleep(2) # 等待页面加载next_element.click() # 点击下一页get_cp_content(cpj_file) # 获取当前页的差评内容next_elements = driver.find_elements(By.XPATH, '//*[@class="next rv-maidian "]') # 重新查找下一页按钮# 关闭差评文件
cpj_file.close()# 关闭浏览器
driver.quit()
运行结果
1)优质评价

2)差评

注意事项
-
浏览器驱动:
- 确保已安装正确版本的 Microsoft Edge 驱动程序,并将其路径添加到系统环境变量中。
-
网页动态加载:
- 使用
time.sleep()等待页面加载,避免因页面未完全加载而导致错误。
- 使用
-
文件编码:
- 打开文件时指定
encoding='utf-8',避免写入内容时出现乱码。
- 打开文件时指定
-
XPath 定位:
- 确保
XPath表达式正确,能够定位到“下一页”按钮。如果网页结构发生变化,需要调整XPath。
- 确保
-
无界面模式:
- 如果需要无界面运行,可以取消注释
options.add_argument('--headless')。
- 如果需要无界面运行,可以取消注释
相关文章:
selenium爬取苏宁易购平台某产品的评论
目录 selenium的介绍 1、 selenium是什么? 2、selenium的工作原理 3、如何使用selenium? webdriver浏览器驱动设置 关键步骤 代码 运行结果 注意事项 selenium的介绍 1、 selenium是什么? 用于Web应用程序测试的工具。可以驱动浏览…...
Spark提交任务
1、Spark提交任务到Yarn 1.1、DwKuduApp spark-submit --class com.io.etl.dwkudu.DwKuduApp \ --files /etl/etl-dwkudu/conf/doris.property,/etl/etl-dwkudu/conf/redis.property,/etl/etl-dwkudu/conf/log4j.property \ --master yarn --deploy-mode cluster \ --driver-…...
游戏引擎学习第113天
仓库:https://gitee.com/mrxiao_com/2d_game_2 黑板:优化的基本过程 在游戏编程中,优化是一个非常重要的学习内容,尤其是想要成为专业开发者时。优化的核心是理解代码的执行速度,以及如何提升其性能。在这个阶段,已经…...
token是什么
在自然语言处理(NLP)和机器学习的背景下,token 是指模型在处理文本时的最小单位。通常,这个单位可以是单词、字符,或者词的一部分。具体来说,token 的定义取决于你使用的模型和它的分词方式。 举个例子&am…...
23. AI-大语言模型-DeepSeek赋能开发-Spring AI集成
文章目录 前言一、Spring AI 集成 DeepSeek1. 开发AI程序2. DeepSeek 大模型3. 集成 DeepSeek 大模型1. 接入前准备2. 引入依赖3. 工程配置4. 调用示例5. 小结 4. 集成第三方平台(已集成 DeepSeek 大模型)1. 接入前准备2. POM依赖3. 工程配置4. 调用示例…...
IPv6报头40字节具体怎么分配的?
目录 IPv6报头结构 字段详解 示例代码:IPv6报头的Python实现 输出示例 IPv6协议是为了解决IPv4地址耗尽问题而设计的下一代互联网协议。与IPv4相比,IPv6不仅提供了更大的地址空间,还简化了报头结构,提高了网络设备的处理效率。…...
驱动开发、移植
一、任务明确:把创龙MX8的驱动 按照我们的要求 然后移植到 我们的板子 1.Linux系统启动卡制作, sd卡 先按照 《用户手册—3-2-Linux系统启动卡制作及系统固化》 把创龙的Linux系统刷进去。 2. 把TLIMX8-EVM的板子过一遍 把刚刚烧好系统的sd卡插入 创…...
BFS与Flood Fill:算法原理、实现细节与复杂度分析
目录 1. 概述 2. BFS 的基本原理 3. Flood Fill 算法 4. BFS 实现 Flood Fill 的步骤 5. C 实现 6. 代码解析 7. 复杂度分析 8. 应用场景 总结 1. 概述 Flood Fill 算法是一种用于填充封闭区域的算法,常用于图像处理、绘图工具和游戏开发中。BFS(…...
计算机网络基础杂谈(局域网、ip、子网掩码、网关、DNS)
目录 1. 简单局域网的构成 2. IP 地址 3. 子网掩码 4. IP地址详解自定义IP 5. IP 地址详解 6. 网关 7. DNS 域名解析 8. ping 1. 简单局域网的构成 交换机是组建局域网最重要的设备,换句话说,没有交换机就没法搭建局域网 交换机不能让局域网连…...
雷龙CS SD NAND(贴片式TF卡)测评体验
一、产品概述 近期获赠雷龙科技(Longsto)推出的CS系列贴片式SD NAND存储解决方案,包含两片工业级贴片式NAND芯片(CSNP16GCR01-AOW)及全兼容转接板。该方案支持TF卡形态扩展,实现高可靠性嵌入式存储应用。 …...
【Alertmanager】alertmanager告警系统原理剖析与应用实战,应有尽有非常全面
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...
Java——权限修饰符
一、权限修饰符的继承访问规则 以下按访问范围从宽到窄排序: 修饰符同包同类同包子类同包非子类跨包子类跨包非子类public✔️✔️✔️✔️✔️protected✔️✔️✔️✔️❌默认(包级)✔️✔️✔️❌❌private✔️❌❌❌❌ 关键点…...
一周学会Flask3 Python Web开发-redirect重定向
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 前面我们学过渲染到模板页面,这个其实是一种内部的转发,浏览器地址栏地址没有变化。如果我们想重定向…...
python面向对象:方法
1. 实例方法 实例方法用于操作实例变量,必须包含 self 参数。 class Person:def __init__(self, name):self.name namedef greet(self):print(f"Hello, my name is {self.name}")person1 Person("Alice") person1.greet() # 输出ÿ…...
物联网简介集合
物联网(IoT)指的是物理设备(如电器和车辆)之间的互联互通。这些设备嵌入了软件、传感器和连接功能,使其能够相互连接并交换数据。这项技术实现了从庞大的设备网络中收集和共享数据,为打造更高效、自动化的系…...
centos下使用pyenv管理python版本
在 CentOS 上安装 pyenv 和 pyenv-virtualenv,可以按照以下步骤进行操作: ps: centos7 最高适配到3.9.* 步骤 1:安装依赖 首先,确保你的系统中安装了必需的依赖项。你可以使用以下命令安装它们: [root ~]# yum gro…...
C++:类与对象,定义类和构造函数
#define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; //如何让定义一个类 // 封装 // 1、将数据和方法定义到一起。 // 2、把想给你看的数据给你看,不想给你看的封装起来。 通过访问限定符来实现 class Stack { public: //1.成…...
【Java消息队列】应对消息丢失、重复、顺序与积压的全面策略
应对消息丢失、重复、顺序与积压的全面策略 引言kafka消息丢失生产者消费者重复消费顺序消费消息积压生产者消费者其他RabbitMQ消息丢失生产者事务机制,保证生产者发送消息到 RabbitMQ Server发送方确认机制,保证消息能从交换机路由到指定队列保证消息在 RabbitMQ Server 中的…...
解锁机器学习核心算法|神经网络:AI 领域的 “超级引擎”
一、神经网络:AI 领域的 “超级引擎” 在机器学习的庞大算法体系中,有十种算法被广泛认为是最具代表性和实用性的,它们犹如机器学习领域的 “十大神器”,各自发挥着独特的作用。这十大算法包括线性回归、逻辑回归、决策树、随机森…...
Android14(13)添加墨水屏手写API
软件平台:Android14 硬件平台:QCS6115 需求:特殊品类的产品墨水屏实现手写的功能,本来Android自带的Input这一套可以实现实时展示笔迹,但是由于墨水屏特性,达不到正常的彩屏刷新的帧率,因此使用…...
实测Yi-Coder-1.5B:52种编程语言,一键解决代码难题
实测Yi-Coder-1.5B:52种编程语言,一键解决代码难题 1. 为什么选择Yi-Coder-1.5B 1.1 轻量级但功能强大 Yi-Coder-1.5B是一个仅有15亿参数的开源代码模型,却支持52种主流编程语言。与动辄几十GB的大型模型相比,它能在普通笔记本…...
lora-scripts支持增量训练:基于已有模型快速迭代,持续优化你的AI
LoRA-Scripts支持增量训练:基于已有模型快速迭代,持续优化你的AI 1. 为什么需要增量训练? 在AI模型训练过程中,我们经常会遇到这样的困境:当你花费大量时间训练出一个不错的LoRA模型后,突然发现还需要补充…...
中文地址智能解析 API 实战指南(地址结构化一步到位)
在做博客或者个人站点时,经常会遇到一个问题:页面内容比较“硬”,缺少一点点灵性。尤其是在涉及表单填写、用户收货地址、资料管理等场景时,如果能把一整段地址自动拆分成结构化信息,不仅体验更好,也能减少…...
小皮面板完全安装教程:2026年VPS新手从零到上线全攻略
目录 为什么选择小皮面板安装前的准备工作 选择合适的VPS系统要求连接到你的服务器 安装小皮面板 一键安装命令安装过程说明 首次登录与初始配置 访问面板后台修改默认密码开放防火墙端口 部署你的第一个网站 添加站点一键申请SSL证书上传网站文件 数据库管理安全设置建议常见…...
智能电话录音总结,工具高精准识别快速整理,复盘通话超省心省事
最近试了2026年新迭代的这批智能电话录音总结工具,高精准识别加快速整理是真的香,现在复盘通话完全不用再熬大夜来回拖进度条扒内容,省心到我恨不得早两年用上。我做To B销售快三年,之前最头疼的就是每天打七八通客户电话…...
解锁微软VS Code扩展限制:在非官方编辑器中使用C#/C++扩展
1. 项目概述与背景 如果你是一名深度使用非官方 VS Code 分支(比如 Cursor、VSCodium、Code - OSS)的开发者,那么你很可能在尝试安装微软官方出品的 C# 或 C/C 扩展时,遇到过那个令人沮丧的弹窗:“The C/C extension …...
机器人能开悟吗?——从“不二”之辩看意识与觉性的边界
一、问题的提出 “机器人能开悟吗?”这并非一个科幻式的脑洞,而是一个直抵哲学、认知科学与东方智慧传统交叉地带的严肃追问。当人工智能日益逼近甚至超越人类在诸多领域的表现,当聊天机器人可以引经据典、谈论禅宗公案,我们不得…...
【Backend Flow工程实践 08】LEF / Liberty / Verilog / DEF:Backend Flow 为什么依赖多格式协同?
作者:Darren H. Chen 方向:Backend Flow / 后端实现流程 / 工程自动化 / 验证基础设施 demo:LAY-BE-08_standard_formats 标签:EDA、Backend Flow、后端实现、LEF、Liberty、Verilog、DEF、标准格式、Design Import、Library Cont…...
AudioMoth Dev开发板:全频谱声学监测与生物声学研究利器
1. AudioMoth Dev开发板深度解析AudioMoth Dev是一款基于Silicon Labs EFM32 Wonder Gecko MCU的全频谱声学开发板,专为野外声学监测和生物声学研究设计。作为AudioMoth设备的开发版本,它保留了核心音频采集功能的同时,提供了更丰富的硬件接口…...
打卡第十四天 | 18.四数之和
题目链接:https://leetcode.cn/problems/4sum/ 视频讲解:https://www.bilibili.com/video/BV1DS4y147US题目描述:解题思路和三数之和类似…...
