借助GPT提取网页里的表格数据

问题是这样的,我想获取该网站的数据,试了Rstudio,datapasta插件(将复制的网页表格数据直接转为dataframe),未果,遂询问了GPT,效果不错。

我的提问:

document.getElementsByTagName(‘table’) 如何在chrome的console里把这个表格里的数据保存为json,这个table有两列,第二列是个链接

下面是GPT给出的代码,亲测可用。期间还发现chrome不支持直接复制代码到console,按提示键入\(allow pasting\)后,即可复制。 GPT YYDS.


// 获取页面上的第一个表格
const table = document.getElementsByTagName('table')[0];

// 检查是否获取到表格
if (!table) {
  console.error("未找到表格");
} else {
  // 提取表格中的行
  const rows = table.getElementsByTagName('tr');

  // 初始化结果数组
  const result = [];

  // 遍历每一行(跳过表头)
  for (let i = 1; i < rows.length; i++) {
    const cells = rows[i].getElementsByTagName('td');
    if (cells.length >= 2) {
      // 提取第一列文本和第二列链接
      const firstColumn = cells[0].textContent.trim();
      const secondColumn = cells[1].querySelector('a')?.href || null;

      // 添加到结果数组
      result.push({
        text: firstColumn,
        link: secondColumn,
      });
    }
  }

  // 输出结果为 JSON 格式
  console.log(result);

  // 将结果保存为 JSON 文件
  const blob = new Blob([JSON.stringify(result, null, 2)], { type: "application/json" });
  const link = document.createElement("a");
  link.href = URL.createObjectURL(blob);
  link.download = "table-data.json";
  link.click();
}