求从HTML Div提取数据导入Excel/Google Sheets的操作实例
针对HTML Div元素的数据抓取方案(Excel/Google Sheets通用实例)
以下所有操作均适配你提到的目标站点抓取需求:
Google Sheets 操作实例
核心使用IMPORTXML函数通过XPath路径定位Div元素,操作步骤如下:
- 打开空白Google Sheets,选中数据输出的起始单元格
- 批量抓取站点所有服务器行数据输入公式:
=IMPORTXML("https://newworldstatus.com/regions/us-east", "//div[contains(@class,'server-row')]") - 精准抓取单字段,比如抓取所有服务器名称:
=IMPORTXML("https://newworldstatus.com/regions/us-east", "//div[contains(@class,'server-name')]/text()") - 抓取服务器在线状态:
=IMPORTXML("https://newworldstatus.com/regions/us-east", "//div[contains(@class,'server-status')]/span/text()")
如果遇到动态渲染内容抓取失败,可使用自定义Apps Script实现,示例代码片段:
function getDivContent() { const url = "https://newworldstatus.com/regions/us-east"; const html = UrlFetchApp.fetch(url).getContentText(); const content = XmlService.parse(html); const root = content.getRootElement(); // 筛选目标类名的Div元素 const serverDivs = root.getDescendants().filter(elem => elem.getName() == 'div' && elem.getAttribute('class')?.getValue().includes('server-row')); // 循环读取Div子节点内容输出到单元格即可 }
Excel 操作实例
核心使用Power Query实现,对动态渲染内容的兼容性优于Google Sheets原生函数,操作步骤如下:
- 打开Excel,点击「数据」选项卡 → 「从Web」
- 输入目标站点URL点击「确定」,进入Power Query编辑器
- 若为动态加载内容,切换到「Web视图」标签,等待页面加载完成后,直接在预览页点击你要抓取的Div区块,Power Query会自动识别同类Div的批量数据
- 手动定位Div可在「高级编辑器」中使用以下M语言示例调整:
let 源 = Web.Page(Web.Contents("https://newworldstatus.com/regions/us-east")), 筛选目标Div = Table.SelectRows(源, each [TagName] = "div" and Text.Contains([Attributes][class], "server-row")), 提取服务器名称 = Table.AddColumn(筛选目标Div, "服务器名称", each [Children]{0}[Data]), 提取在线状态 = Table.AddColumn(提取服务器名称, "在线状态", each [Children]{1}[Data]) in 提取状态
- 字段调整完成后点击「关闭并上载」即可将数据导入Excel,后续右键数据区域即可刷新同步最新内容
通用技巧
- 浏览器按F12打开开发者工具,选中目标Div元素右键 → 复制 → 复制XPath,即可直接替换公式中的路径参数实现精准定位
- 嵌套Div逐层调整XPath的层级参数即可定位到目标字段值
- 动态JS渲染的内容优先使用Excel Power Query的Web视图模式抓取,成功率更高
内容的提问来源于stack exchange,提问作者FiVVR
相关产品推荐
相关产品推荐

