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

devtools/2025/2/28 12:25:36/

目录

selenium%E7%9A%84%E4%BB%8B%E7%BB%8D-toc" name="tableOfContents" style="margin-left:80px">selenium的介绍

selenium%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F%C2%A0-toc" name="tableOfContents" style="margin-left:120px">1、 selenium是什么? 

selenium%E7%9A%84%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86-toc" name="tableOfContents" style="margin-left:120px">2、selenium的工作原理

selenium%EF%BC%9F-toc" name="tableOfContents" style="margin-left:120px">3、如何使用selenium

webdriver浏览器驱动设置

关键步骤

代码

运行结果

注意事项


selenium%E7%9A%84%E4%BB%8B%E7%BB%8D" name="selenium%E7%9A%84%E4%BB%8B%E7%BB%8D">selenium的介绍

selenium%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F%C2%A0" name="1%E3%80%81%20selenium%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F%C2%A0">
1、 selenium是什么? 


    用于Web应用程序测试的工具。可以驱动浏览器执行特定操作,自动按照脚本
    代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样。
    支持的浏览器包括IE,Firefox,Safari,Chrome,Opera等。

selenium%E7%9A%84%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86" name="2%E3%80%81selenium%E7%9A%84%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86">
2、selenium的工作原理


    浏览器具有webdriver驱动,这个驱动是根据不同的浏览器开发的,
    不同的浏览器使用不同的webdriver驱动程序且需要对应相应的浏览器版本,
    webdriver驱动程序可以通过浏览器内核控制浏览执行指定命令

selenium%EF%BC%9F" name="3%E3%80%81%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8selenium%EF%BC%9F">
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() 关闭浏览器。

代码

python">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')


http://www.ppmy.cn/devtools/163345.html

相关文章

深入探索DNS技术:互联网背后的寻址密码

目录 DNS 是什么 DNS 的工作原理 域名服务器的类型 域名解析过程 DNS 常见问题及解决方法 DNS 的未来发展趋势 总结 DNS 是什么 DNS,即域名系统(Domain Name System) ,是互联网的一项核心服务。它作为互联网的 “地址簿”&…

DavGo简单部署WebDAV服务

目录 功能特性使用方法1. 下载2. 配置 config.yaml3. 运行服务器4. 可以用来挂载WebDav的软件 反向代理 DavGo 是一个用 Go 语言实现的轻量级 WebDAV 服务器,支持动态配置多个 WebDAV 服务实例,每个实例可以独立设置根目录、认证信息和读写模式。 功能特…

【Python爬虫(69)】解锁游戏数据宝藏:Python爬虫实战攻略

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取,还涉及数据处理与分析。无论是新手小白还是进阶开发…

Wireshark插件开发实战:扩展网络协议分析的边界

前言 在网络协议分析领域,Wireshark作为业界标杆工具,其强大的可扩展性常被低估。本文将通过实战案例,揭秘如何通过插件开发突破Wireshark的默认分析能力,打造专属协议解析利器。 一、开发环境准备 1.1 工具链配置 Wireshark 4…

本地部署 deepseek-r1 1.5B方法-ubuntu20.04 python3.10 pycharm虚拟环境

1. 环境安装 ubuntu20.04 python3.10 pycharm虚拟环境 2.拉取代码 虚拟环境下安装vllm: pip install vllm ubuntu命令窗口安装 sudo apt install git-lfs 初始化 Git LFS 安装 Git LFS 后,你需要虚拟环境命令窗口初始化它:git lfs i…

HTTP非流式请求 vs HTTP流式请求

文章目录 HTTP 非流式请求 vs 流式请求一、核心区别 服务端代码示例(Node.js/Express)非流式请求处理流式请求处理 客户端请求示例非流式请求(浏览器fetch)流式请求处理(浏览器fetch) Python客户端示例&…

LeetCode 热门100题-螺旋矩阵

题目描述: 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 逻辑: 沿着某一边…

使用Python爬虫获取京东商品评论API接口的详细指南

在数据分析和市场研究中,商品评论数据是了解用户需求和产品改进方向的重要资源。京东作为国内知名的电商平台,提供了丰富的商品评论数据接口(JD.item_review),开发者可以通过这些接口获取商品评论的详细信息&#xff0…