首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Puppeteer crawler数据导出

Puppeteer crawler数据导出
EN

Stack Overflow用户
提问于 2021-07-20 21:52:35
回答 1查看 38关注 0票数 0

我有一个puppeteer函数,它使用模板文字转到某个页面,并读取给定表的内容。我如何将我拥有的数组从网站发送到我的服务器,这样我就可以通过API来获取它?谢谢!

代码:

代码语言:javascript
复制
const puppeteer = require('puppeteer');

const today = new Date();

let ma = today.getFullYear() + '.' + 0 + (today.getMonth() + 1) + '.' + today.getDate() + '.';


const url = `https://www.mnb.hu/arfolyam-tablazat?deviza=rbCustom&devizaSelected=ZAR&datefrom=${ma}&datetill=${ma}&order=1&customdeviza%5B%5D=EUR&customdeviza%5B%5D=USD&customdeviza%5B%5D=GBP`

async function getTable() {

  const browser = await puppeteer.launch();

  const page = await browser.newPage();

  await page.goto(url);

  const data = await page.evaluate(() => {

    const tds = Array.from(document.querySelectorAll('tbody tr td'))
    return tds.map(td => td.innerText)
  });

  
  console.log(data);
  console.log(data[0])
  await browser.close();
};

getTable();

这是只有一条路由的服务器

代码语言:javascript
复制
const express = require('express');
const puppeteer = require('puppeteer');
const cors = require('cors')

const app = express();
app.use(cors())

const devizak = [**Data from puppeteer**]

app.get("/devizak", cors(), function (req, res, next) {
    if (devizak.length < 1) {
        return null
    } else {
        res.json([devizak])
    }
})

app.listen(5000, () => {
    console.log("App is listening on port 5000");
})
EN

回答 1

Stack Overflow用户

发布于 2021-07-20 22:04:33

如果不知道这个脚本和您的服务器代码之间的上下文/关系,就很难回答这个问题,但是:

假设您的服务器是RESTful,我建议您使用本机fetch API或第三方HTTP库(如Axios )将数组作为POST请求发送到您的服务器。例如:

代码语言:javascript
复制
const Axios = require('axios')
const serverURL = /* Your server URL here */

// Get the array from your async function
getTable()
  .then((yourArray) => {

    // Send to your server
    Axios.post(serverURL, yourArray)

  })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68456078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档