You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量导入foreclosureindia.com多页数据至Excel/Google Sheets单工作表

批量导入多页银行拍卖数据到Excel/Google Sheets

Google Sheets 解决方案(基于Apps Script)

  • 打开你的Google Sheets文件,点击顶部菜单栏「扩展程序」>「Apps Script」
  • 清空默认代码,粘贴以下脚本:
function importForeclosureData() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.clearContents(); // 可选:清空现有内容,按需调整
  
  // 写入表头(可根据网页实际列名修改)
  const headers = ['拍卖编号', '银行名称', '抵押物类型', '位置', '保留价', '拍卖日期'];
  sheet.getRange(1, 1, 1, headers.length).setValues([headers]);
  
  const baseUrl = "https://foreclosureindia.com/bank-auctions/visakhapatnam/";
  const totalPages = 100; // 替换为实际总页数
  
  let row = 2; // 从第二行开始写入数据
  
  for (let page = 1; page <= totalPages; page++) {
    const url = baseUrl + page;
    const response = UrlFetchApp.fetch(url);
    const html = response.getContentText();
    
    // 解析HTML提取表格数据(需根据网页实际结构调整标签逻辑)
    const doc = XmlService.parse(html);
    const root = doc.getRootElement();
    const tableRows = root.getDescendants().filter(elem => elem.asElement() && elem.asElement().getTagName() === 'tr');
    
    tableRows.forEach((tr, index) => {
      if (index === 0) return; // 跳过网页自带的表头行
      const cells = tr.getDescendants().filter(elem => elem.asElement() && elem.asElement().getTagName() === 'td');
      const rowData = cells.map(cell => cell.asElement().getText().trim());
      
      if (rowData.length > 0) {
        sheet.getRange(row, 1, 1, rowData.length).setValues([rowData]);
        row++;
      }
    });
    
    // 避免请求过于频繁触发网站限制
    Utilities.sleep(1000);
  }
  
  SpreadsheetApp.getUi().alert("数据导入完成!");
}
  • 点击「保存」,给项目命名(比如ForeclosureDataImporter)
  • 点击运行按钮,首次运行需完成权限授权,按提示操作即可
  • 等待脚本执行完毕,数据会自动写入当前工作表

提示:若XmlService解析HTML报错,可改用Cheerio库(需在Apps Script中添加库),或用正则表达式提取数据,具体需匹配网页的实际DOM结构。

Excel 解决方案(基于Power Query)

  • 打开Excel,点击「数据」选项卡>「获取数据」>「自其他来源」>「自Web」
  • 输入第一页URL:https://foreclosureindia.com/bank-auctions/visakhapatnam/1,点击确定
  • 在Power Query编辑器中,加载网页表格并完成基础清洗(删除冗余行、设置列类型等)
  • 点击「主页」>「高级编辑器」,替换现有M代码为以下内容:
let
    totalPages = 100, // 替换为实际总页数
    baseUrl = "https://foreclosureindia.com/bank-auctions/visakhapatnam/",
    // 生成所有页面URL列表
    pageUrls = List.Generate(
        () => [Page=1, Url=baseUrl & "1"],
        each [Page] <= totalPages,
        each [Page=[Page]+1, Url=baseUrl & Text.From([Page]+1)],
        each [Url]
    ),
    // 批量抓取每页数据
    fetchPages = List.Transform(pageUrls, (url) =>
        let
            Source = Web.Page(Web.Contents(url, [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"]])),
            Data0 = Source{0}[Data],
            CleanedData = Table.Skip(Data0, 1) // 跳过网页表头行,按需调整
        in
            CleanedData
    ),
    // 合并所有页面数据
    combinedData = Table.Combine(fetchPages),
    // 设置表头
    setHeaders = Table.PromoteHeaders(combinedData, [PromoteAllScalars=true])
in
    setHeaders
  • 点击「完成」,数据将加载到Excel工作表中

提示:若网站有反爬限制,可调整User-Agent参数模拟不同浏览器请求,或增加请求间隔。

内容的提问来源于stack exchange,提问作者Imtiaz Public

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 18:01:24