如何用Google Sheets的IMPORTXML提取SIAL巴黎展参展商公司名录
SIAL巴黎展参展商名录Google Spreadsheet提取方案
之前配置失败的原因
Google Sheets自带的
IMPORTXML函数仅能抓取页面返回的初始静态HTML代码,而SIAL巴黎展的参展商列表是通过JavaScript异步请求加载的动态内容,初始HTML中不存在你要提取的h3标签,因此直接调用IMPORTXML会返回空值;你使用的第二个XPath仅匹配列表第一个参展商的元素,本身也无法提取全量名单。
可行操作方案
方案1:使用Google Apps Script直接提取到表格(无需导出导入)
- 打开目标Google Spreadsheet,点击顶部菜单栏「扩展程序」>「Apps Script」进入脚本编辑器
- 删除编辑器内默认的示例代码,粘贴如下代码:
function getSIALExhibitors() { // 抓取全量数据可循环修改page参数,默认第一页page=1 const baseUrl = "https://www.sialparis.com/Exhibitors/Catalogue-SIAL-Paris/exhibitors?page="; const headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" }; const allExhibitors = [["参展商名称"]]; // 可根据官方总页数调整循环次数,默认先爬前10页 for (let page = 1; page <= 10; page++) { const response = UrlFetchApp.fetch(baseUrl + page, {headers: headers, muteHttpExceptions: true}); const content = response.getContentText(); const nameMatch = content.match(/"name":"([^"]+)","standNumber"/g); if (!nameMatch) break; nameMatch.forEach(item => { const name = item.match(/"name":"([^"]+)"/)[1].replace(/\\"/g, '"'); allExhibitors.push([name]); }); } const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); sheet.clear(); sheet.getRange(1, 1, allExhibitors.length, 1).setValues(allExhibitors); }
- 点击顶部保存按钮,命名项目后点击「运行」,按照提示授权脚本访问权限,执行完成后回到表格即可看到全量参展商名称
- 若需更新数据,重新进入Apps Script运行该函数即可
方案2:浏览器本地导出CSV后导入表格(零代码操作)
- 用Chrome/Edge浏览器打开SIAL参展商名录页面,滚动页面加载完当前页所有参展商,若有多页逐页切换加载
- 按F12打开开发者工具,切换到「控制台」标签,粘贴如下代码后回车:
const exhibitorNames = Array.from(document.querySelectorAll('div h3')).filter(el => el.closest('li a') && el.innerText.trim()).map(el => el.innerText.trim()); const csvContent = "参展商名称\n" + exhibitorNames.join("\n"); const downloadLink = document.createElement("a"); downloadLink.href = "data:text/csv;charset=utf-8," + encodeURIComponent(csvContent); downloadLink.download = "SIAL巴黎展参展商名录.csv"; downloadLink.click();
- 执行后会自动下载CSV文件,将该文件直接导入Google Spreadsheet即可使用
内容的提问来源于stack exchange,提问作者Raj Vora
相关产品推荐
相关产品推荐

