python网络爬虫小项目(爬取评论)超级简单

python网络爬虫小项目(爬取评论)超级简单

学习python网络爬虫的完整路径:

(第一章)

python网络爬虫(第一章/共三章:网络爬虫库、robots.txt规则(防止犯法)、查看获取网页源代码)-CSDN博客https://blog.csdn.net/2302_78022640/article/details/149428719?sharetype=blogdetail&sharerId=149428719&sharerefer=PC&sharesource=2302_78022640&spm=1011.2480.3001.8118(第二章)

python网络爬虫(第二章/共三章:安装浏览器驱动,驱动浏览器加载网页、批量下载资源)-CSDN博客https://blog.csdn.net/2302_78022640/article/details/149431071?sharetype=blogdetail&sharerId=149431071&sharerefer=PC&sharesource=2302_78022640&spm=1011.2480.3001.8118

(第三章)

python网络爬虫(第三章/共三章:驱动浏览器窗口界面,网页元素定位,模拟用户交互(输入操作、点击操作、文件上传),浏览器窗口切换,循环爬取存储)-CSDN博客https://blog.csdn.net/2302_78022640/article/details/149453182?spm=1011.2124.3001.6209(额外加一个小项目)

即此篇文章

爬取商品好评

完整代码

代码如下:

from selenium import webdriver
from selenium.webdriver.edge.options import Options
from selenium.webdriver.common.by import By
import time# 定义获取页面内容的函数
def get_content(driver):# 等待页面加载完成,可以考虑用 WebDriverWait 来代替 time.sleeptime.sleep(3)# 以追加模式打开文件 '好评.txt',准备写入内容file = open('好评.txt', 'a', encoding='utf-8')# 找到所有 class 为 'body-content' 的元素,这些元素包含评论的正文内容contents = driver.find_elements(By.CLASS_NAME, 'body-content')# 遍历所有找到的评论内容for content in contents:# 给予写入文件内容的时间time.sleep(3)# 将评论文本写入文件file.write(content.text)file.write('\n')# 写入完成后关闭文件file.close()# 配置 Edge 浏览器选项
edge_options = Options()
# 设置 Edge 浏览器的二进制路径
edge_options.binary_location = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
# 初始化 Edge 浏览器驱动
driver = webdriver.Edge(options=edge_options)# 打开指定的 URL 网页
driver.get("https://review.suning.com/cluster_cmmdty_review/cluster-38249278-000000012389328846-0000000000-1-good.htm?originalCmmdtyType=general&safp=d488778a.10004.loverRight.166")# 调用 get_content 函数获取当前页面的评论内容
get_content(driver)# 获取“下一页”按钮
next_rv_maidian = driver.find_element(By.CSS_SELECTOR, '.next.rv-maidian')# 使用 while 循环来点击“下一页”按钮并继续抓取页面评论
while next_rv_maidian != []:# 获取“下一页”按钮元素next_rv_maidian = driver.find_element(By.CSS_SELECTOR, '.next.rv-maidian')# 点击“下一页”按钮next_rv_maidian.click()# 获取当前页的评论内容get_content(driver)

如何寻找页面元素:

网页右键检查,

点击左上角按键:

点击左方要爬取的内容:

观察到右边:class="body-content"

此行代码即可捕获相应内容:

contents = driver.find_elements(By.CLASS_NAME, 'body-content')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/92147.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/92147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

本周大模型新动向:奖励引导、多模态代理、链式思考推理

点击蓝字关注我们AI TIME欢迎每一位AI爱好者的加入!01Iterative Distillation for Reward-Guided Fine-Tuning of Diffusion Models in Biomolecular Design本文提出了一种用于生物分子设计中奖励引导生成的扩散模型微调框架。扩散模型在建模复杂、高维数据分布方面…

JAVA+AI教程-第三天

我将由简入繁,由零基础到详细跟大家一起学习java---------------------------------------------------------------------01、程序流程控制:今日课程介绍02、程序流程控制:if分支结构if分支有三种形式,执行顺序就是先执行if&…

自定义命令行解释器shell

目录 一、模块框架图 二、实现目标 三、实现原理 四、全局变量 五、环境变量函数 六、初始化环境变量表函数 七、输出命令行提示符模块 八、提取命令输入模块 九、填充命令行参数表模块 十、检测并处理内建命令模块 十一、执行命令模块 十二、源码 一、模块框架图…

uniapp使用uni-ui怎么修改默认的css样式比如多选框及样式覆盖小程序/安卓/ios兼容问题

修改 uni-ui 多选框 (uni-data-checkbox) 的默认样式 在 uniapp 中使用 uni-ui 的 uni-data-checkbox 组件时,可以通过以下几种方式修改其默认样式: 方法一:使用深度选择器格式一:在页面的 style 部分使用深度选择器 >>>…

《Linux 环境下 Nginx 多站点综合实践:域名解析、访问控制与 HTTPS 加密部署》​

综合练习:请给openlab搭建web网站,网站需求: 1.基于域名www.openlab.com可以访问网站内容为 welcome to openlab!!, 2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,基于www.openlab.com/student 网站访…

网络基础1-11综合实验(eNSP):vlan/DHCP/Web/HTTP/动态PAT/静态NAT

注:在华为模拟器(eNSP)上做的实验其中,在内网实验:Vlan/DHCP/VWeb/HTTP,在外网实验:动态PAT/静态NAT一、拓扑结构1. 核心设备与连接设备接口连接对象VLAN/IP角色LSW2/LSW3Ethernet 0/0/1-2PC1/P…

Mac上安装Claude Code的步骤

以下是基于现有信息的简明安装指南,适用于macOS系统。请按照以下步骤操作: 前提条件 操作系统:macOS 10.15或更高版本。Node.js和npm:Claude Code基于Node.js,需安装Node.js 18和npm。请检查是否已安装: …

MybatisPlus-15.扩展功能-逻辑删除

一.逻辑删除配置逻辑删除的字段时,logic-delete-field字段配置的是逻辑删除的实体字段名。字段类型可以是boolean和integer。在java中默认是boolean类型。逻辑已删除值默认为1,而逻辑未删除值默认为0。当是1时代表已删除(1在数据库表中为true&#xff0c…

IDEA 同时修改某个区域内所有相同变量名

在 IntelliJ IDEA 中,同时修改某个区域内所有 相同变量名 的快捷键是: ✅ Shift F6(重命名变量) 但这个快捷键默认是 全局重命名,如果你想 仅修改某个方法或代码块内的变量名,可以这样做:&…

Telink BLE 低功耗学习

低功耗管理(Low Power Management)也可以称为功耗管理(Power Management),本⽂档中会简称为PM。Telink低功耗解惑我查阅多连接SDK开发手册时,低功耗管理章节看了两三遍也没太明白,有以下几个问题…

设备管理系统(MMS)如何在工厂MOM功能设计和系统落地

一、核心系统功能模块设备管理系统围绕设备全生命周期管理设计,涵盖基础数据管理、设备运维全流程管控及统计分析功能,具体如下:基础数据管理设备与备件台账:包含设备台账(设备编号、识别码、型号、生产日期等&#xf…

低空经济展 | 牧羽天航空携飞行重卡AT1300亮相2025深圳eVTOL展

为深入推动低空经济产业高质量发展,构建全球eVTOL(电动垂直起降飞行器)产业交流合作高端平台,2025深圳eVTOL展定于2025年9月23日至25日在深圳坪山燕子湖国际会展中心隆重举办。本届展会以“低空经济・eVTOL・航空应急救援・商载大…

CS231n-2017 Lecture4神经网络笔记

神经网络:我们之前的线性分类器可以接受输入,进而给出评分,这是一种线性变换,再此基础上,我们对这种线性变换结果进行非线性变换,并输入到下一层线性分类器中,这个过程就像是人类大脑神经的运作…

暑期算法训练.5

目录 20. 力扣 34.在排序数组中查找元素的第一个位置和最后一个位置 20.1 题目解析: 20.2 算法思路: 20.3 代码演示: ​编辑 20.4 总结反思: 21.力扣 69.x的平方根 21.1 题目解析: 21.2 算法思路:…

【HDLBits习题详解 2】Circuit - Sequential Logic(5)Finite State Machines 更新中...

1. Fsm1(Simple FSM 1 - asynchronous reset)状态机可分为两类:(1)Mealy状态机:输出由当前状态和输入共同决定。输入变化可能立即改变输出。(2)Moore状态机:输出仅由当前…

多级缓存(亿级流量缓存)

传统缓存方案问题 多级缓存方案 流程 1.客户端浏览器缓存页面静态资源; 2. 客户端请求到Nginx反向代理;[一级缓存_浏览器缓存] 3.Nginx反向代理将请求分发到Nginx集群(OpenResty); 4.先重Nginx集群OpenResty中获取Nginx本地缓存数据;[二级缓存_Nginx本地缓存] 5.若Nginx本地缓存…

浅谈Rust语言特性

如大家所了解的,Rust是一种由Mozilla开发的系统编程语言,专注于内存安全、并发性和高性能,旨在替代C/C等传统系统编程语言。Rust 有着非常优秀的特性,例如:可重用模块 内存安全和保证(安全的操作与不安全的…

React探索高性能Tree树组件实现——react-window、react-vtree

🚀 简介 在现代 Web 应用中,处理大量层级数据的树形结构是一个常见挑战。传统的树组件在面对成千上万个节点时往往会出现性能瓶颈,导致页面卡顿、内存占用过高等问题。本文将深入探讨如何使用 react-window 和 react-vtree 构建高性能的虚拟…

C++ 中的默认构造函数:非必要,不提供

《More Effective C:35个改善编程与设计的有效方法》 读书笔记:非必要不提供default constructor在 C 中,默认构造函数(即无需任何参数即可调用的构造函数)是对象“无中生有”的一种方式。它的核心作用是在没有外部信息…

如何选择低代码开发平台

选择低代码开发平台需要考虑平台的开发效率、灵活性和扩展能力、安全性和合规性、成本效益等关键因素。 具体来说,平台的灵活性和扩展能力尤为重要,这决定了平台是否能长期满足企业日益增长的复杂需求。例如,企业在评估平台时,应关…