Node.js 将响应从puppeter传递到API
我想从Puppeter打开链接,从网络获取API链接,每3分钟传递到我们的API 错误 如果我控制台link变量,它将显示链接,但作为回报,它是空的 领导者Node.js 将响应从puppeter传递到API,node.js,cron,puppeteer,Node.js,Cron,Puppeteer,我想从Puppeter打开链接,从网络获取API链接,每3分钟传递到我们的API 错误 如果我控制台link变量,它将显示链接,但作为回报,它是空的 领导者 const puppeteer = require('puppeteer'); let link = ''; var url = async () => { const browser = await puppeteer.launch({ headless: false }) const page = await brow
const puppeteer = require('puppeteer');
let link = '';
var url = async () => {
const browser = await puppeteer.launch({
headless: false
})
const page = await browser.newPage()
await page.goto("https://www.pgatour.com/leaderboard.html", {
waitUntil: 'networkidle2'
});
let urls = await page.on('response', async (response) => {
if (response.url().includes("leaderboard.json")) {
console.log('XHR response received');
const data = await response.buffer()
link = response.url(); // ========> link get if I console it
browser.close();
}
});
return link; //==================== PROBLEM================= link is empty
}
cron.jscron将在3分钟后打开链接
const cron = require("node-cron");
const axios = require("axios");
var leader = require('leader');
cron.schedule("* 3 * * *", function () {
console.log("running a task 3 minute")
axios.get('/link', {
params: {
link: leader //<<<< ========================== here I want to pass the link from leader.js file
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
})
})
const cron=require(“节点cron”);
常量axios=要求(“axios”);
var leader=require(‘leader’);
cron.schedule(“*3***”,函数(){
log(“运行任务3分钟”)
axios.get(“/link”{
参数:{
link:leader/如果在leader.js模块中创建getLeader()函数,如下所示:
leader.js
const puppeteer = require('puppeteer');
async function getLeader() {
const browser = await puppeteer.launch({
headless: true
})
console.log("Loading page...");
const page = await browser.newPage()
await page.goto("https://www.pgatour.com/leaderboard.html", {
waitUntil: 'networkidle2'
});
return new Promise((resolve, reject) => {
page.on('response', async (response) => {
if (response.url().includes("leaderboard.json")) {
console.log('XHR response received');
link = response.url(); // ========> link get if I console it
browser.close();
console.log("Link:", link);
resolve(link);
}
});
})
}
module.exports = { getLeader };
然后在cron模块中:
cron
const cron = require("node-cron");
const axios = require("axios");
const { getLeader } = require('./leader.js');
cron.schedule("*/3 * * * *", async function () {
console.log("running a task every 3 minutes");
let leader = await getLeader();
console.log("Cron job: Leader:", leader);
axios.get('/link', {
params: {
link: leader //<<<< ========================== here I want to pass the link from leader.js file
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
})
})
const cron=require(“节点cron”);
常量axios=要求(“axios”);
const{getLeader}=require('./leader.js');
cron.schedule(“*/3****”,异步函数(){
log(“每3分钟运行一次任务”);
let leader=等待getLeader();
log(“Cron作业:Leader:”,Leader);
axios.get(“/link”{
参数:{
链接:leader//