如何在Google Sheets中用IMPORTXML抓取下拉选项对应表格数据?
解决Google Sheets抓取动态加载的股票历史高低数据问题
因为目标网页是通过**表单提交(POST请求)**加载对应选项的数据,而非URL参数跳转,所以直接拼接URL的方法无效。以下是适合非专业编码者的可行方案:
方案一:使用Google Apps Script模拟表单提交
这是最可靠的方法,能模拟用户选择下拉选项并提交的操作,获取对应数据:
- 打开你的Google Sheets,点击顶部菜单「扩展程序」→「Apps Script」,进入脚本编辑器。
- 删除默认的
myFunction代码,替换为以下脚本(已添加关键注释):
function fetchStockData() { // 获取当前工作表 const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 提取A列中所有非空的选项值(从A2开始) const tickerList = activeSheet.getRange("A2:A").getValues().filter(row => row[0] !== ""); const targetUrl = "https://www.ksestocks.com/HistoryHighLow"; // 遍历每个选项值,抓取对应数据 tickerList.forEach((ticker, idx) => { // 构造表单提交参数(需和网页实际提交的参数一致,可通过浏览器抓包确认) const formPayload = { selscrip: ticker[0], submit: "Submit" // 网页提交按钮的参数,若实际不同需修改 }; // 设置POST请求选项 const requestOptions = { method: "post", payload: formPayload, headers: { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" } }; try { // 发送POST请求,获取对应页面内容 const response = UrlFetchApp.fetch(targetUrl, requestOptions); const htmlContent = response.getContentText(); // 使用Cheerio库解析HTML(需先添加库,步骤见下方) const $ = Cheerio.load(htmlContent); // 用你提供的XPath对应的CSS选择器定位目标数据 const targetData = $("html > body > div:nth-child(2) > div > table > tbody > tr > td > div:nth-child(2) > table > tbody > tr:nth-child(3) > td > table > tbody > tr:nth-child(3) > td:nth-child(2)").text().trim(); // 将数据写入B列对应行(A2对应B2,以此类推) activeSheet.getRange(idx + 2, 2).setValue(targetData); } catch (error) { // 捕获错误,写入B列提示 activeSheet.getRange(idx + 2, 2).setValue(`抓取失败: ${error.message}`); } }); }
添加Cheerio解析库:
在脚本编辑器中点击「资源」→「库」,输入库ID1ReeQ6WO8kKNxoaA_O0XEQ589cIrRvEBA9qcWpNqdOP17i47u6N9M5Xh0,选择最新版本,点击「添加」。运行脚本:
点击脚本编辑器顶部的运行按钮,首次运行会要求授权Google账号权限,按照提示完成授权即可。脚本会自动遍历A列的选项值,将对应数据写入B列。
关键注意事项
- 若表单提交参数(如
submit的值)与网页实际不符,需通过浏览器抓包确认:打开目标网页按F12进入开发者工具,选择「网络」标签,选择下拉选项并提交,找到POST请求,查看「Form Data」中的参数,修改脚本里的formPayload。 - 如果遇到抓取失败,可尝试调整
headers中的User-Agent为当前浏览器的标识,模拟真实浏览器请求。
内容的提问来源于stack exchange,提问作者Huma Wakani
相关产品推荐
相关产品推荐

