如何将数据从Puppeteer发布到node.js中的Google Apps Script Web应用程序API端点?

我有一个Puppeteer抓取脚本,可以成功获取我的目标数据。现在,我想将数据发布到我的Google Apps Script网络应用中,并在GAS中使用doPost()进行读取。我希望能在Google表格文件中看到数据,但是却收到以下错误。

  

TimeoutError:导航超时超过30000 ms       在/Users/path/to/node_modules/puppeteer/lib/LifecycleWatcher.js:142:21     -异步-       在帧。 (/用户/路径/到/node_modules/puppeteer/lib/helper.js:111:15)       在Page.goto(/Users/path/to/node_modules/puppeteer/lib/Page.js:675:49)       在Page。 (/用户/路径/到/node_modules/puppeteer/lib/helper.js:112:23)       在/Users/path/to/proto.js:215:37       在processTicksAndRejections(internal / process / task_queues.js:93:5){     名称:“ TimeoutError”   }

我在做什么错了?

puppeteer.js
  const pagePost = await browser.newPage();

  ...
  postUrl = 'https://script.google.com/macros/s/abcdexyz123/exec' // GAS endpoint,tested and working
  itemsAsCsv = // csv data
  ...

  // Allows you to intercept a request; must appear before
  // your first page.goto()
  await pagePost.setRequestInterception(true);

  // Request intercept handler... will be triggered with 
  // each page.goto() statement
  pagePost.on('request',interceptedRequest => {

      // Here,is where you change the request method and 
      // add your post data
      var data = {
          method: POST,postData: itemsAsCsv,};

      // Request modified... finish sending! 
      interceptedRequest.continue(data);
  });

  // Navigate,trigger the intercept,and resolve the response
  try {
    const response = await pagePost.goto(postUrl);     
    const responseBody = await response.text();
    console.log(responseBody);
  } catch(e) {
    console.log(e)   
  }

  // // Close the browser - done! 
  // await browser.close();

  // end POST

  await browser.close();
zhangdh_nwnu 回答:如何将数据从Puppeteer发布到node.js中的Google Apps Script Web应用程序API端点?

在抓取页面时尝试使用下面给出的语法。

const response = await pagePost.goto(postUrl,{waitUntil: 'load',timeout: 0})
,

问题是我试图写一个数组数组。但是我只读取一个数组(行)。

解决方法是更改​​

postData: itemsAsCsv,

postData: itemsAsCsv[0],
本文链接:https://www.f2er.com/3117146.html

大家都在问