使用 Puppeteer 设置 Cookies 并实现自动化分页操作:前端实战教程

使用 Puppeteer 设置 Cookies 并自动化分页操作

在现代的 Web 自动化中,使用 Puppeteer 进行浏览器自动化是一个非常方便的选择。本篇文章将介绍如何使用 Puppeteer 设置 Cookies、模拟用户行为、获取网页内容,并且遍历分页获取所有数据。

一、项目初始化

首先,我们需要安装 Puppeteer。你可以通过 npm 来安装:

npminstallpuppeteer

然后创建一个 JavaScript 文件,例如puppeteer.js,以若依测试。并添加以下代码:

二、代码实现

constpuppeteer=require('puppeteer');constfs=require('fs');// 导入文件系统模块// 设置延时的工具函数functionwaitForTimeout(time){returnnewPromise((resolve,reject)=>setTimeout(resolve,time));}(async()=>{// 启动 Puppeteer 浏览器实例constbrowser=awaitpuppeteer.launch({headless:false// 设置为 false 以便查看操作});try{constpage=awaitbrowser.newPage();awaitpage.setViewport({width:1920,height:800});// 导航到需要设置 cookie 的页面awaitpage.goto('http://localhost:8093/admin');// 定义多个 cookie 对象并存储在数组中constcookies=[{"name":"Admin-Token","value":"eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjYzYWNmZTVmLWUyNGItNDYwNi05ZjdhLTBkYmU5ZDBhZWJmZCJ9.RqZDMMiRTGUwVSLal9dx2mDyHwkY_vk4Vs2bMSegph7P0eTnKDknN5DOP3wRu18e2NVk5OdVSfJcLmC0N1HHHQ"}// 可以继续添加更多 cookie 对象];// 使用 page.setCookie 方法设置多个 cookieawaitpage.setCookie(...cookies);// 打印当前页面的 cookiesconstcookies1=awaitpage.cookies();console.log('当前页面的 cookies:',cookies1);// 导航到目标页面awaitpage.goto('http://localhost:8093/category');// 使用 XPath 选择带有特定文本的按钮constxpathSelectorC='//span[text()="50条/页"]';awaitpage.waitForXPath(xpathSelectorC);// 获取符合条件的元素并模拟点击操作const[element]=awaitpage.$x(xpathSelectorC);if(element){awaitelement.evaluate(element=>element.click());console.log('已选择 "50条/页"');}else{console.log('未找到 "50条/页"');}// 等待分页元素加载完成awaitpage.waitForSelector('ul.el-pager');// 获取分页的所有 <li> 元素constliElements=awaitpage.$$('ul.el-pager li');constlastLiElement=liElements[liElements.length-1];letlastLiText=0;if(lastLiElement){lastLiText=awaitpage.evaluate(li=>li.textContent,lastLiElement);console.log('最后一个 <li> 元素的内容:',lastLiText);}else{console.log('未找到 <li> 元素');}// 定义表格和分页按钮选择器consttableSelector='table';constnextButtonSelector='button.btn-next';// 等待下一页按钮可见awaitpage.waitForSelector(nextButtonSelector,{visible:true,timeout:5000});consttotalPages=parseInt(lastLiText);// 获取总页数letcurrentPage=1;letallTableHTML='';// 用于保存所有表格的 HTML 内容// 遍历所有分页while(currentPage<=totalPages){constbuttonElement=awaitpage.$(nextButtonSelector);consttableElements=awaitpage.$$(tableSelector);if(buttonElement){// 点击“下一页”按钮awaitbuttonElement.click();awaitwaitForTimeout(3000);// 等待加载// 获取当前页面的表格内容并保存for(consttableElementoftableElements){consttableHTML=awaittableElement.evaluate(element=>element.outerHTML);allTableHTML+=tableHTML;}currentPage++;// 增加当前页数}else{console.log('未找到按钮');break;// 如果按钮不存在,退出循环}}console.log('已浏览到第 '+totalPages+' 页');// 你可以将 allTableHTML 保存为文件或进一步处理fs.writeFileSync('allTables.html',allTableHTML);// 完成后关闭浏览器awaitbrowser.close();}catch(e){console.log("发生错误:"+e);}})();

三、代码说明

  1. 启动浏览器实例
    使用puppeteer.launch()启动一个浏览器实例。headless: false表示我们希望看到浏览器的操作界面,便于调试。

  2. 设置 Cookies
    使用page.setCookie(...cookies)设置多个 Cookie。我们通过传递一个包含多个 cookie 对象的数组来设置 Cookies。

  3. 等待和选择元素
    使用page.waitForXPath()page.waitForSelector()来确保元素加载完成后进行交互。特别是通过 XPath 选择“50条/页”按钮,并模拟点击它。

  4. 分页操作
    使用page.$(nextButtonSelector)page.$$(tableSelector)获取“下一页”按钮和表格元素,进行分页处理。每一页的数据都通过tableElement.evaluate()获取 HTML 内容,并累积到allTableHTML中。

  5. 文件保存
    最后,所有页面表格的 HTML 内容保存在一个文件allTables.html中,使用 Node.js 的fs模块来实现文件保存。

四、总结

通过以上代码,你可以模拟在 Web 页面上设置 Cookies、模拟用户行为并自动化分页操作。你可以根据具体需求对该代码进行修改,以实现更复杂的自动化任务。

Puppeteer 是一个强大的浏览器自动化工具,适用于多种 Web 数据抓取和自动化任务。希望本文的示例代码能帮助你入门 Puppeteer,并加速你在自动化测试和 Web 数据抓取方面的工作。

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

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

相关文章

Holistic Tracking教育套件:学校机房也能用的云端AI实验室

Holistic Tracking教育套件&#xff1a;学校机房也能用的云端AI实验室 引言&#xff1a;当AI教育遇上老旧电脑 "老师&#xff0c;我们学校的电脑跑不动Stable Diffusion..."这是许多信息技术老师面临的现实困境。当GTX 750显卡遇上需要RTX 3060的AI应用&#xff0c…

AI元人文:悟空踏上取经路

AI元人文&#xff1a;悟空踏上取经路人机协作&#xff1a;岐金兰 与 AI助手们引言&#xff1a;当治理成为一场取经公元2025年&#xff0c;全球人工智能产业规模突破2万亿美元&#xff0c;大语言模型的参数量以每月翻倍的速度增长&#xff0c;自动驾驶汽车在数十个城市开展商业化…

3D电商模特生成术:Holistic Tracking+云端GPU,1小时出样片

3D电商模特生成术&#xff1a;Holistic Tracking云端GPU&#xff0c;1小时出样片 1. 为什么服装店主需要AI模特生成&#xff1f; 对于中小服装店主来说&#xff0c;每次上新都要请专业模特拍摄是一笔不小的开支。传统拍摄流程需要预约模特、摄影师、场地&#xff0c;后期还要…

AI艺术家工作室:多模态创作镜像,灵感随时变现

AI艺术家工作室&#xff1a;多模态创作镜像&#xff0c;灵感随时变现 引言&#xff1a;当音乐人遇上AI创作 作为一名独立音乐人&#xff0c;你是否经历过这样的困境&#xff1a;深夜灵感迸发时却找不到合适的编曲伙伴&#xff1f;精心创作的歌词缺少匹配的旋律&#xff1f;专…

MediaPipe Holistic省钱攻略:按需付费比买显卡省90%,1小时1块

MediaPipe Holistic省钱攻略&#xff1a;按需付费比买显卡省90%&#xff0c;1小时1块 1. 为什么健身房老板需要MediaPipe Holistic 健身房老板王总最近遇到一个头疼的问题&#xff1a;他想用AI技术分析学员的健身动作是否标准&#xff0c;但咨询IT公司后被告知需要配置GPU服务…

老年人也能学会:MediaPipe Holistic图形界面版云端体验

老年人也能学会&#xff1a;MediaPipe Holistic图形界面版云端体验 引言&#xff1a;当太极拳遇上AI 退休工程师张师傅最近迷上了太极拳&#xff0c;但总担心自己的动作不够标准。传统方法要么需要专业教练指导&#xff0c;要么得反复观看录像对比——直到他发现了MediaPipe …

小白必看:『AI印象派艺术工坊』从上传到生成的完整流程解析

小白必看&#xff1a;『AI印象派艺术工坊』从上传到生成的完整流程解析 关键词&#xff1a;AI图像风格迁移、OpenCV计算摄影、非真实感渲染、WebUI画廊系统、零依赖部署 摘要&#xff1a;本文深入解析「AI印象派艺术工坊」镜像的技术实现路径与使用流程。该工具基于OpenCV的纯算…

AnimeGANv2技术揭秘:为什么能保持人脸不扭曲

AnimeGANv2技术揭秘&#xff1a;为什么能保持人脸不扭曲 1. 引言&#xff1a;AI二次元转换的技术演进 随着深度学习在图像生成领域的快速发展&#xff0c;风格迁移&#xff08;Style Transfer&#xff09;技术已从早期的简单滤波效果&#xff0c;进化到如今能够实现高度艺术化…

【数据库】【Mysql】慢SQL深度分析:EXPLAIN 与 optimizer_trace 全解析

MySQL 慢SQL深度分析&#xff1a;EXPLAIN 与 optimizer_trace 全解析 在 MySQL 性能优化体系中&#xff0c;慢SQL分析是核心技能。本文将从 EXPLAIN 执行计划解读 到 optimizer_trace 优化器追踪&#xff0c;构建完整的慢查询诊断方法论。一、EXPLAIN 基础与核心字段总览 1.1 E…

【紧急预案】容器大规模故障时,如何5分钟内自动恢复服务?

第一章&#xff1a;容器大规模故障的应急响应机制当 Kubernetes 集群中出现容器大规模崩溃或无法调度的情况时&#xff0c;快速响应与精准定位是恢复服务稳定的关键。建立标准化的应急响应流程&#xff0c;有助于在黄金时间内控制故障影响范围。故障识别与初步诊断 首先需通过监…

HunyuanVideo-Foley Docker部署:容器化运行的最佳配置

HunyuanVideo-Foley Docker部署&#xff1a;容器化运行的最佳配置 1. 引言 1.1 业务场景描述 随着短视频、影视后期和内容创作行业的快速发展&#xff0c;音效制作已成为提升视频质量的关键环节。传统音效添加依赖人工逐帧匹配&#xff0c;耗时耗力且专业门槛高。HunyuanVid…

奇奇视频 / 双子星动漫 / 挽离漫画:这三款工具太懂内容党

翻应用商店总怕碰着 “花架子” App&#xff0c;直到挖到奇奇视频、双子星动漫、挽离漫画这三个&#xff0c;试完直接清了手机里一半冗余软件。 奇奇视频是刷剧党的 “精准货架”。界面没多余弹窗&#xff0c;按 “剧 / 影 / 漫” 分类&#xff0c;新剧标着 “更新至 XX 集”&a…

Webtoon漫画批量下载完整教程:一键保存所有章节的终极方案

Webtoon漫画批量下载完整教程&#xff1a;一键保存所有章节的终极方案 【免费下载链接】Webtoon-Downloader Webtoons Scraper able to download all chapters of any series wanted. 项目地址: https://gitcode.com/gh_mirrors/we/Webtoon-Downloader 想要永久收藏喜爱…

JLink驱动安装方法:Windows系统完整指南

JLink驱动安装全攻略&#xff1a;从零开始搭建稳定调试环境 你有没有遇到过这样的情况&#xff1f;刚拿到一块新的开发板&#xff0c;满怀期待地插上J-Link调试器&#xff0c;打开Keil或STM32CubeIDE&#xff0c;结果却弹出“Cannot connect to J-Link”——设备根本识别不了。…

AnimeGANv2优化技巧:解决动漫化后背景失真的问题

AnimeGANv2优化技巧&#xff1a;解决动漫化后背景失真的问题 1. 背景与问题定义 随着深度学习在图像风格迁移领域的快速发展&#xff0c;AnimeGANv2 成为最受欢迎的照片转二次元模型之一。其核心优势在于轻量级架构和对人脸特征的高度保留&#xff0c;尤其适用于将真实人像转…

隐私计算新选择:本地数据+云端模型,原始数据不出域

隐私计算新选择&#xff1a;本地数据云端模型&#xff0c;原始数据不出域 1. 医疗AI的隐私困境与解决方案 医院每天产生大量病例数据&#xff0c;这些数据对AI模型训练和诊断辅助极具价值。但医疗数据包含患者隐私信息&#xff0c;直接上传到云端存在泄露风险。传统做法往往面…

元宇宙建筑工必看:Holistic Tracking实现低成本3D空间扫描

元宇宙建筑工必看&#xff1a;Holistic Tracking实现低成本3D空间扫描 1. 为什么你需要了解Holistic Tracking&#xff1f; 想象一下&#xff0c;你是一位独立游戏开发者&#xff0c;想要在元宇宙中还原自家老宅作为游戏场景。传统激光扫描仪日租金高达3000元&#xff0c;而A…

办公效率翻倍:AI智能文档扫描仪使用全攻略

办公效率翻倍&#xff1a;AI智能文档扫描仪使用全攻略 1. 引言&#xff1a;为什么你需要一个本地化智能扫描工具 在数字化办公日益普及的今天&#xff0c;将纸质文档快速、清晰地转化为电子文件已成为日常刚需。无论是合同签署、发票归档&#xff0c;还是课堂笔记、白板记录&…

拒绝浪费:GPU云服务按秒计费实操手册

拒绝浪费&#xff1a;GPU云服务按秒计费实操手册 1. 为什么你需要按秒计费&#xff1f; 作为算法工程师&#xff0c;你可能经常遇到这样的场景&#xff1a;花大价钱包月租用GPU服务器&#xff0c;结果70%的时间机器都在闲置。按传统包月方式&#xff0c;每月白白浪费上千元成…

Holistic Tracking模型压缩实战:云端剪枝量化,速度提升5倍

Holistic Tracking模型压缩实战&#xff1a;云端剪枝量化&#xff0c;速度提升5倍 引言 在急诊科这样的关键医疗场景中&#xff0c;每秒钟都可能关乎生死。想象一下&#xff0c;当医生需要AI系统快速分析患者CT影像时&#xff0c;如果模型响应需要3秒钟&#xff0c;这等待时间…