javascript - 在 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]
}
}
}
解决方案
你在这里做什么没有意义。只需请求数据
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))
;
推荐阅读
- python - Django:models.ImageField 的动态存储文件夹
- python - Pytesseract 无法加载,因为它无法找到 tesseract
- computer-science - 为什么VC(a)的这个属性
矢量时钟的 a->b 总是成立吗? - casting - Windbg -
, 无效转换, 别名 as vs. aS - spring-boot - 无法在 Spring Boot 应用程序中更新 hikari 数据源配置
- python-3.x - 如何引用一些特殊的词(注册号)不被 Spacy 标记?
- vue.js - 如果我添加第二个元素(如 v-card 或 v-toolbar),带有填充高度的 v-layout v-flex 会溢出屏幕
- objective-c - 将 modulename-Swift.h 文件导入 ObjC .h 文件
- tensorflow - 导入 tensorflow 时出错,tensorflow 库被编译为使用 AVX 指令,但这些在您的机器上不可用
- apache-spark - 如何在 macOS Mojave 上使用 Pandas UDF?(由于 [__NSPlaceholderDictionary initialize] 而失败可能正在进行中......)