首页 > 解决方案 > 在 API 中打开数组(puppeteer)

问题描述

我正在尝试从 API 打开一个数组

尝试使用代码 const names_2 = await page.evaluate(() => Array.from(document.querySelectorAll('.mainDiv > Departure'), Departure => Departure.innerText));

但没有运气

这是我的输入

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch()
  const page = await browser.newPage()
  await page.goto('http://xmlopen.rejseplanen.dk/bin/rest.exe/multiDepartureBoard?id1=8600646&format=json')

    const result = await page.evaluate(() => {
      let temperature = document.getElementsByTagName("pre")[0].innerText;
temperature = JSON.parse(temperature);
    return {
        temperature
      }
  })

  console.log(result)


})()

这是我的输出

{
  temperature: {
    MultiDepartureBoard: {
      noNamespaceSchemaLocation: 'http://xmlopen.rejseplanen.dk/xml/rest/hafasRestMultiDepartureBoard.xsd',
      Departure: [Array]
    }
  }
}

标签: javascriptarrays

解决方案


你在这里做什么没有意义。只需请求数据

const rp = require('request-promise');
rp.get({
    uri: 'http://xmlopen.rejseplanen.dk/bin/rest.exe/multiDepartureBoard?id1=8600646&format=json',
    json: true
})
    .then(res => res.MultiDepartureBoard.Departure)
    .map(e => console.log(e))
;

推荐阅读