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

Google Apps Script中UrlFetchApp返回数据无法被Utilities.parseCsv正确解析的问题排查

问题分析与解决方案

看起来你遇到的核心问题是:Cloud Run返回的字符串里的换行符是字面量\n(即反斜杠+n两个字符),而非真正的换行符,导致Utilities.parseCsv无法识别行分隔符,把整个内容当成了一行,所以日志输出数组长度为1。

为什么复制到临时变量就能正常工作?

当你把日志里的内容手动复制到temp变量时,JavaScript会自动将字符串字面量里的\n解析成真正的换行符;但通过UrlFetchApp获取的responseString里,\n是Cloud Run返回的原始字面量字符(因为Python代码里误用了原始字符串语法),实际存储的是\\n,自然无法被parseCsv识别为行分隔符。


解决方案1:从源头修复Python代码(推荐)

你的Python脚本里用了r"\n"这种原始字符串写法,会把反斜杠当成普通字符,导致返回的字符串没有真正的换行。把换行符改成普通的"\n"即可:

@app.route("/")
def hello_world(): 
  driver.get("https://www.asxlistedcompanies.com/") 
  soup = BeautifulSoup(driver.page_source, 'html.parser') 
  long_string = "" 
  limit = 1 
  for row in soup.select('tr'): 
    if limit == 20: 
      break 
    tds = [td.a.get_text(strip=True) if td.a else td.get_text(strip=True) for td in row.select('td')] 
    # 用制表符拼接列,再添加真正的换行符
    long_string += "\t".join(tds) + "\n"
    limit += 1 
  return long_string

修改后,返回的字符串会包含真正的换行符,Utilities.parseCsv就能正确拆分出18行数据。


解决方案2:在Google Apps Script中临时修复字符串

如果暂时无法修改Cloud Run的代码,也可以在GAS里把字面量\n替换成真正的换行符:

function myFunction() { 
  const token = ScriptApp.getIdentityToken(); 
  const options = { headers: {'Authorization': 'Bearer ' + token} } 
  var responseString = UrlFetchApp.fetch("https://*myfunction*.a.run.app", options).getContentText(); 
  // 全局替换字面量\n为真正的换行符
  responseString = responseString.replace(/\\n/g, "\n");
  var data = Utilities.parseCsv(responseString, '\t'); 
  Logger.log(data.length); // 现在应该输出18
}

额外优化建议

Python里用循环拼接字符串效率较低,推荐用列表收集每行内容,最后统一拼接:

@app.route("/")
def hello_world(): 
  driver.get("https://www.asxlistedcompanies.com/") 
  soup = BeautifulSoup(driver.page_source, 'html.parser') 
  rows = []
  limit = 1 
  for row in soup.select('tr'): 
    if limit == 20: 
      break 
    tds = [td.a.get_text(strip=True) if td.a else td.get_text(strip=True) for td in row.select('td')] 
    rows.append("\t".join(tds))
    limit += 1 
  # 用换行符拼接所有行
  return "\n".join(rows)

这样代码更简洁,性能也更优。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 04:04:09