当前位置: 首页 > article >正文

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

关键步骤

  1. 初始化浏览器驱动

    • 使用 selenium 的 Options 对象配置 Edge 浏览器,例如可以设置无界面模式。
    • 初始化 webdriver.Edge,启动浏览器。
  2. 抓取优质评价

    • 打开优质评价的 URL。
    • 使用 find_elements 查找所有评价内容,并将其保存到文件 优质评价1.txt
    • 点击“下一页”按钮,循环抓取所有页的评论内容。
  3. 抓取差评

    • 打开差评的 URL。
    • 使用 find_elements 查找所有差评内容,并将其保存到文件 差评.txt
    • 点击“下一页”按钮,循环抓取所有页的差评内容。
  4. 关闭浏览器

    • 完成抓取后,调用 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)差评

注意事项

  1. 浏览器驱动

    • 确保已安装正确版本的 Microsoft Edge 驱动程序,并将其路径添加到系统环境变量中。
  2. 网页动态加载

    • 使用 time.sleep() 等待页面加载,避免因页面未完全加载而导致错误。
  3. 文件编码

    • 打开文件时指定 encoding='utf-8',避免写入内容时出现乱码。
  4. XPath 定位

    • 确保 XPath 表达式正确,能够定位到“下一页”按钮。如果网页结构发生变化,需要调整 XPath
  5. 无界面模式

    • 如果需要无界面运行,可以取消注释 options.add_argument('--headless')

相关文章:

selenium爬取苏宁易购平台某产品的评论

目录 selenium的介绍 1、 selenium是什么? 2、selenium的工作原理 3、如何使用selenium? webdriver浏览器驱动设置 关键步骤 代码 运行结果 注意事项 selenium的介绍 1、 selenium是什么? 用于Web应用程序测试的工具。可以驱动浏览…...

kubernetes-完美下载

话不多说,直接开始从0搭建k8s集群 环境:centous7.9 2核 20G k8s-master 192.168.37.20 k8s-node1 192.168.37.21 k8s-node2 192.168.37.22 一:设置主机名 #设置主机名 hostnamectl set-hostname k8s-master hostnamectl set-h…...

PostgreSQL 常用函数

PostgreSQL 常用函数 在数据库管理系统中,函数是执行特定任务的基本构建块。PostgreSQL 是一个功能强大的开源关系数据库管理系统,提供了丰富的内置函数,这些函数极大地增强了数据库操作的能力。以下是一些在 PostgreSQL 中常用的函数&#…...

【初阶数据结构】树和二叉树

目录 前言树的概念与结构树的概念树的相关概念树的表示 二叉树的概念及结构二叉树的概念几种特殊的二叉树1.满二叉树2.完全二叉树 二叉树的性质二叉树的存储结构1、顺序存储2、链式存储 前言 前面我们学习了顺序表,单链表,栈和队列,它们在逻…...

【中等】59.螺旋矩阵Ⅱ

题目描述 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入:n 3 输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2: 输入:n…...

Spring Boot + Vue 接入腾讯云人脸识别API(SDK版本3.1.830)

一、需求分析 这次是基于一个Spring Boot Vue的在线考试系统进行二次开发,添加人脸识别功能以防止学生替考。其他有对应场景的也可按需接入API,方法大同小异。 主要有以下两个步骤: 人脸录入:将某个角色(如学生&…...

测试工程师玩转DeepSeek之Prompt

以下是测试工程师使用DeepSeek的必知必会提示词指南,分为核心场景和高效技巧两大维度: 一、基础操作提示模板 1. 测试用例生成 "作为[金融系统/物联网设备/云服务]测试专家,请为[具体功能模块]设计测试用例,要求&#xff1…...

虚中断理解

虚中断(Virtual Interrupt)是指在计算机系统中,特别是在虚拟化环境下,虚拟机或虚拟操作系统中使用的一种中断机制。它允许虚拟机监控程序(Hypervisor)或虚拟化管理程序在虚拟机之间进行中断处理和资源管理。…...

PC端-发票真伪查验系统-Node.js全国发票查询接口

在现代企业的财务管理中,发票真伪的验证至关重要。随着电子发票的普及,假发票问题日益严峻,如何高效、准确的对发票进行真伪查验,已经成为各类企业在日常运营中必须解决的关键问题。翔云发票查验接口做企业财务管理、税务合规的好…...

给Python加入自己的函数

在日常研究中,我们有时候会写一些Python没有的,但是很多个脚本都需要用的函数,反复的复制函数太过麻烦,我们可以进行一些简单的操作来变成一个可以直接import的函数 1. 首先我们新建一个.py文件,把我们的函数放进去&a…...

JAVA中包装类和泛型 通配符

目录 1. 包装类 1.1 基本数据类型和对应的包装类 1.2 装箱和封箱 1.3 自动自动装箱和封箱 2. 什么是泛型 3. 引出泛型 3.1 语法 4. 泛型类的使⽤ 4.1 语法 4.2 ⽰例 4.3 类型推导(Type Inference) 5 泛型的上界 5.1 语法 6. 通配符 6.1 通配符解决什么问题 6.2…...

Qt TCP服务端和客户端程序

1、服务端程序 利用QtCreator新建QMainWindow或QWidget工程&#xff0c;绘制UI如下所示。 mainwindow.h代码如下&#xff1a; #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QTcpServer> #include <QTcpSocket> #include &l…...

level2Day5

Makefile make是工程管理器 先写了1个f1.c里面写了一个函数 然后f2.c里面也写了一个函数 还有一个头节点 又写了一个makefile的函数 输入make编译&#xff0c;但是我没装make需要装一下。 sudo apt install make 然后make&#xff0c; Makefile变量的使用 通过赋值&#xff…...

青少年学习编程如何平衡使用DeepSeek与独立思考

前言 对于正在学习编程的青少年来说&#xff0c;DeepSeek生成代码的功能是一把双刃剑。如果合理使用&#xff0c;它可以成为青少年学习编程的有力助手&#xff1b;但如果过度依赖&#xff0c;可能会阻碍他们的思维发展和能力提升。关键在于引导青少年正确看待工具的作用&#…...

MySQL 8.0 Enterprise Backup (MEB) 备份与恢复实践指南

一、MEB 核心价值与特性 1.1 产品定位 MySQL Enterprise Backup (MEB) 是Oracle官方推出的企业级物理热备份工具&#xff0c;专为MySQL 8.0设计&#xff0c;支持InnoDB/XtraDB引擎的在线备份&#xff0c;同时兼容MyISAM表的锁定备份。 1.2 核心优势 零停机热备份&#xff1…...

UE5从入门到精通之多人游戏编程常用函数

文章目录 前言一、权限与身份判断函数1. 服务器/客户端判断2. 网络角色判断二、网络同步与复制函数1. 变量同步2. RPC调用三、连接与会话管理函数1. 玩家连接控制2. 网络模式判断四、实用工具函数前言 UE5给我们提供了非常强大的多人网路系统,让我们可以很方便的开发多人游戏…...

[Web 安全] 反序列化漏洞 - 学习笔记

关注这个专栏的其他相关笔记&#xff1a;[Web 安全] Web 安全攻防 - 学习手册-CSDN博客 0x01&#xff1a;反序列化漏洞 — 漏洞介绍 反序列化漏洞是一种常见的安全漏洞&#xff0c;主要出现在应用程序将 序列化数据 重新转换为对象&#xff08;即反序列化&#xff09;的过程中…...

minio作为K8S后端存储

docker部署minio mkdir -p /minio/datadocker run -d \-p 9000:9000 \-p 9001:9001 \--name minio \-v /minio/data:/data \-e "MINIO_ROOT_USERjbk" \-e "MINIO_ROOT_PASSWORDjbjbjb123" \quay.io/minio/minio server /data --console-address ":90…...

Leetcode2717:半有序排列

题目描述&#xff1a; 给你一个下标从 0 开始、长度为 n 的整数排列 nums 。 如果排列的第一个数字等于 1 且最后一个数字等于 n &#xff0c;则称其为 半有序排列 。你可以执行多次下述操作&#xff0c;直到将 nums 变成一个 半有序排列 &#xff1a; 选择 nums 中相邻的两…...

redis小记

redis小记 下载redis sudo apt-get install redis-server redis基本命令 ubuntu16下的redis没有protected-mode属性&#xff0c;就算sudo启动&#xff0c;也不能往/var/spool/cron/crontabs写计划任务&#xff0c;感觉很安全 #连接到redis redis-cli -h 127.0.0.1 -p 6379 …...

C/C++基础知识复习(47)

1) 接口继承与实现继承的区别 接口继承 接口继承意味着定义一个类&#xff0c;它只声明一组方法&#xff08;通常是纯虚函数&#xff09;&#xff0c;但是不提供任何实现。继承这个接口的子类必须实现这些方法。接口继承的主要目的是规范化行为。 C 例子&#xff1a; 在 C 中…...

OkHttp、Retrofit、RxJava:一文讲清楚

一、okHttp的同步和异步请求 Call 是 OkHttp 的核心接口&#xff0c;代表一个已准备好执行的 HTTP 请求。它支持 同步 和 异步 两种模式&#xff1a; enqueue——>okHttp异步 OkHttpClient client new OkHttpClient();Request request new Request.Builder().url("…...

netty详细使用

Netty是一个基于Java的高性能网络应用框架&#xff0c;主要用于快速开发高性能的网络通信应用程序。以下是Netty的详细使用步骤&#xff1a; 添加Netty依赖&#xff1a;在项目的pom.xml中添加Netty的依赖项&#xff0c;例如&#xff1a; <dependency><groupId>io…...

计算机视觉(opencv-python)入门之图像的读取,显示,与保存

在计算机视觉领域&#xff0c;Python的cv2库是一个不可或缺的工具&#xff0c;它提供了丰富的图像处理功能。作为OpenCV的Python接口&#xff0c;cv2使得图像处理的实现变得简单而高效。 示例图片 目录 opencv获取方式 图像基本知识 颜色空间 RGB HSV CV2常用图像处理方…...

ActiveMQ之VirtualTopic

一句话总结&#xff1a; VirtualTopic是为了解决持久化模式下多消费端同时接收同一条消息的问题。 现实中多出现这样一个场景&#xff1a; 生产端产生了一笔订单&#xff0c;作为消息MessageOrder发了出去。 这笔订单既要入订单系统归档&#xff0c;又要入结算系统收款&#x…...

第16届蓝桥杯模拟赛3 python组个人题解

第16届蓝桥杯模拟赛3 python组 思路和答案不保证正确 1.填空 如果一个数 p 是个质数&#xff0c;同时又是整数 a 的约数&#xff0c;则 p 称为 a 的一个质因数。 请问&#xff0c; 2024 的最大的质因数是多少&#xff1f; 因为是填空题&#xff0c;所以直接枚举2023~2 &am…...

UE5 Computer Shader学习笔记

首先这里是绑定.usf文件的路径&#xff0c;并声明是用声明着色器 上面就是对应的usf文件路径&#xff0c;在第一张图进行链接 Shader Frequency 的作用 Shader Frequency 是 Unreal Engine 中用于描述着色器类型和其执行阶段的分类。常见的 Shader Frequency 包括&#xff1a…...

2.1部署logstash:9600

实验环境&#xff1a;关闭防火墙&#xff0c;完成java环境 yum -y install wget wget https://d6.injdk.cn/oraclejdk/8/jdk-8u341-linux-x64.rpm yum localinstall jdk-8u341-linux-x64.rpm -y java -version 1.安装logstash tar xf logstash-6.4.1.tar.gz -C /usr/local…...

SQL笔记#集合运算

目录 一、表的加减法 1、什么是集合运算 2、表的加法——UNION 3、集合运算的注意事项 4、包含重复行的集合运算——ALL运算 5、选取表中公共部分——INTERSECT 6、记录的减法——EXCEPT 二、联结(以列为单位对表进行联结) 1、什么是联结(JOIN) 2、内联结——INSER…...

多模态人物视频驱动技术回顾与业务应用

一种新的商品表现形态&#xff0c;内容几乎存在于手淘用户动线全流程&#xff0c;例如信息流种草内容、搜索消费决策内容、详情页种草内容等。通过低成本、高时效的AIGC内容生成能力&#xff0c;能够从供给端缓解内容生产成本高的问题&#xff0c;通过源源不断的低成本供给倒推…...