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

目录

selenium的介绍

[1、 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. 初始化浏览器驱动

    • 使用 seleniumOptions 对象配置 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')
相关推荐
AC赳赳老秦5 分钟前
电力能源公开数据采集实操:用 OpenClaw 合规抓取电网电价与发电量数据,生成区域能源供需分析报告
大数据·数据库·人工智能·python·php·deepseek·openclaw
应用市场5 分钟前
GPT vs Claude 深度对比(2026年9月):从模型特性到编程实战,开发者该怎么选
python·gpt·flask
IT毕设实战小研9 分钟前
基于大数据的WTA职业网球赛事演变与竞技格局数据可视化分析
大数据·后端·爬虫·python·信息可视化·课程设计
veminhe12 分钟前
python发送邮件带附件
python
zhanghaha131413 分钟前
Python进阶教程:28_queue 队列模块 零基础超详细教程
java·开发语言·python
小柯南敲键盘20 分钟前
跨马翻译AI工具,批量图片视频翻译与智能抠图一站式解决
人工智能·python·音视频
veminhe22 分钟前
python对象的序列化和反序列化
python
weixin1997010801630 分钟前
[特殊字符]《闲鱼 + 淘宝 + 1688 三平台库存同源:二手ERP主数据治理与超卖防御》(附Python源码)
开发语言·python
2601_9623824335 分钟前
用“爬虫”抓取小红书内容侵权吗 福建法院判明边界
爬虫·数字经济·知识产权·不正当竞争·福建法院
yan418290dgjkv1 小时前
2026年汽车贴膜获客新思路:3步锁定精准客户
python·汽车