Url Puppeter page.goto错误仅适用于readFileSync
当使用wait page.goto(“”)时,会生成PDF,但当从csv文件加载相同的URL时,Puppeter会返回错误 Think is可能是一个时间问题,或者是从http重定向到https,但是脚本证明这两者都不是问题 注释掉的url是从单个CSV文件加载的,其中只有一行:“1,oldwestbury.edu,纽约州立大学Old Westbury分校”Url Puppeter page.goto错误仅适用于readFileSync,url,puppeteer,readfile,Url,Puppeteer,Readfile,当使用wait page.goto(“”)时,会生成PDF,但当从csv文件加载相同的URL时,Puppeter会返回错误 Think is可能是一个时间问题,或者是从http重定向到https,但是脚本证明这两者都不是问题 注释掉的url是从单个CSV文件加载的,其中只有一行:“1,oldwestbury.edu,纽约州立大学Old Westbury分校” 希望确定为什么使用url direct创建PDF,以及为什么从CSV文件检索时页面加载失败。Review“我面临类似的问题puppetee
希望确定为什么使用url direct创建PDF,以及为什么从CSV文件检索时页面加载失败。Review“我面临类似的问题puppeteer@1.12.2无法检测从HTTP移动到HTTPS的URL。“在,但似乎不是问题。您有一个try/catch块,但是你实际上没有使用received,它说什么?另外,目标站点实际工作吗?我试图从纽约打开它,但出现了错误连接重置错误。目标站点是,错误是什么?是否有任何捕获块?这是一个挑战。。。错误是什么?发生错误时,catch块返回硬编码文本。
var dir1 = './screenshots';
var dir2 = './pdfs';
const fs = require('fs');
if (!fs.existsSync(dir1)) {
fs.mkdirSync(dir1);
}
if (!fs.existsSync(dir2)) {
fs.mkdirSync(dir2);
}
function readURLFile(path) {
return fs.readFileSync(path, 'utf-8')
.split('\n')
.map((elt) => {
const url = elt.split(',')[1].replace('\r', '');
return `http://${url.toLowerCase()}`;
});
}
const puppeteer = require('puppeteer');
(async () => {
const startDate = new Date().getTime();
const USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3239.108 Safari/537.36';
const urls = readURLFile('./UNVurls.csv');
const browser = await puppeteer.launch({
headless: true
});
for (let url of urls) {
console.log(`Visiting url: ${url}`);
let page = await browser.newPage();
try {
await page.setViewport({ width: 1440, height: 900, deviceScaleFactor: 2 });
await page.goto('http://www.oldwestbury.edu')
// await page.goto(url, {
// waitUntil: 'networkidle2',
// timeout: 0
// });
let fileName = url.replace(/(\.|\/|:|%|#)/g, "_");
if (fileName.length > 100) {
fileName = fileName.substring(0, 100);
}
await page.waitForSelector('title');
await page.screenshot({
path: `./screenshots/${fileName}.jpeg`,
omitBackground: true
});
await page.emulateMedia('screen');
await page.pdf({
path: `./pdfs/${fileName}.pdf`,
pageRanges: "1",
format: 'A4',
printBackground: true
});
} catch (err) {
console.log(`An error occured on url: ${url}`);
} finally {
await page.close();
}
}
await browser.close();
console.log(`Time elapsed ${Math.round((new Date().getTime() - startDate) / 1000)} s`);
})();