借助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;
// 添加到结果数组
.push({
resulttext: 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");
.href = URL.createObjectURL(blob);
link.download = "table-data.json";
link.click();
link }