[英]Slow Puppeteer Performance issues
So I have got my weather scraper working, however the performance is very slow.所以我已经让我的天气刮板工作了,但是性能很慢。 I assume its how I am destructuring the data, But I am really not sure.
我假设它是如何破坏数据的,但我真的不确定。 Would love any advice!!
希望有任何建议!
const puppeteer = require("puppeteer");
const express = require("express");
const app = express();
app.get("/weather", async (req, res) => {
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
await page.goto("https://mars.nasa.gov/msl/weather/");
const nasaWeatherDataScrape = await page.evaluate(() => {
let items = [...document.querySelectorAll(".item")];
return items.map((item) => {
const newMap = new Map();
newMap["Sol"] = item.childNodes[0].innerText.split(" ").pop();
newMap["Date"] = item.childNodes[1].innerText;
newMap["High"] = item.childNodes[4].innerText
.split("C")[0]
.split(" ")
.pop();
newMap["Low"] = item.childNodes[4].innerText
.split("C")[1]
.split(" ")
.pop();
return newMap;
});
});
console.log(nasaWeatherDataScrape, "in");
res.send(nasaWeatherDataScrape);
await browser.close();
});
app.listen(5000);
Did you tried get out of the route:您是否尝试过离开路线:
const browser = await puppeteer.launch({ headless: false });
And not close the browser in it?而不是关闭浏览器呢?
await browser.close();
Something like this:像这样的东西:
const puppeteer = require("puppeteer");
const express = require("express");
const app = express();
const browser = await puppeteer.launch({ headless: false });
app.get("/weather", async (req, res) => {
const aboutBlankPage = (await browser.pages())[0]
if(aboutBlankPage){
await aboutBlankPage.close();
}
const page = await browser.newPage();
await page.goto("https://mars.nasa.gov/msl/weather/");
const nasaWeatherDataScrape = await page.evaluate(() => {
let items = [...document.querySelectorAll(".item")];
return items.map((item) => {
const newMap = new Map();
newMap["Sol"] = item.childNodes[0].innerText.split(" ").pop();
newMap["Date"] = item.childNodes[1].innerText;
newMap["High"] = item.childNodes[4].innerText
.split("C")[0]
.split(" ")
.pop();
newMap["Low"] = item.childNodes[4].innerText
.split("C")[1]
.split(" ")
.pop();
return newMap;
});
});
console.log(nasaWeatherDataScrape, "in");
res.send(nasaWeatherDataScrape);
const newPage = (await browser.pages())[0]
await newPage.close();
// await browser.close();
});
app.listen(5000);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.