如何借助Eggplant抓取网页指定列数据并导出至xlsx文件?
使用Eggplant抓取指定网页数据并导出至XLSX文件
以下是基于Eggplant Studio实现抓取以色列央行汇率页面指定列数据并导出到Excel的完整步骤:
一、环境准备
- 安装最新版Eggplant Studio,确保启用WebDriver自动化组件(用于浏览器控制)
- 确认目标网页可正常访问,提前观察页面表格结构,确保数据列元素可被定位
二、SenseTalk脚本实现
1. 启动浏览器并加载目标页面
// 指定使用Chrome浏览器(也可替换为Firefox/Safari) set targetBrowser to "Chrome" Open browser targetBrowser to "https://www.boi.org.il/he/Markets/ExchangeRates/Pages/Default.aspx" // 等待页面完全加载,最长超时30秒 Wait for page load 30 seconds
2. 定位目标数据列
使用Eggplant的Web Inspector工具,获取截图中两列元素的CSS选择器/XPath(示例需替换为实际页面的选择器):
// 抓取货币名称列所有元素 set currencyList to list of web elements matching css ".table-cell-currency" // 替换为实际CSS选择器 // 抓取汇率值列所有元素 set rateList to list of web elements matching css ".table-cell-rate" // 替换为实际CSS选择器
提示:若页面存在动态加载(需滚动显示更多数据),需先添加滚动加载逻辑:
execute javascript "window.scrollTo(0, document.body.scrollHeight);" Wait 2 seconds // 等待数据加载
3. 整理数据为二维表格
将两列数据配对,确保每行数据对应:
set exportData to {} // 添加表头 add ["货币名称", "汇率"] to exportData // 遍历配对数据 repeat with idx from 1 to length of currencyList set currName to value of item idx of currencyList set currRate to value of item idx of rateList add [currName, currRate] to exportData end repeat
4. 导出至XLSX文件
利用Eggplant的Excel操作库完成文件写入:
// 加载Excel支持库 load library "Excel" // 定义保存路径(替换为你的本地路径) set savePath to "/Users/your-user/Documents/Exchange_Rates.xlsx" // 创建新Excel文件 set excelDoc to create excel file at savePath // 将整理好的数据写入工作表 write rows exportData to excelDoc sheet 1 at row 1 // 保存并关闭文件 save excelDoc close excelDoc
5. 清理会话
// 关闭浏览器 Close browser targetBrowser
三、关键注意事项
- 元素定位适配:页面结构若有更新,需重新用Web Inspector获取最新的元素选择器
- 数据校验:可添加行数校验逻辑,避免因列数据不匹配导致导出错误:
if length of currencyList is not equal to length of rateList then log error "数据列行数不匹配,抓取失败" exit script end if - 字符编码:目标网页为希伯来语,确保Eggplant的字符编码设置为UTF-8,避免导出乱码
内容的提问来源于stack exchange,提问作者or laharty
相关产品推荐
相关产品推荐

