我通过 page.goto 来访问我要打印的页面,但是执行的时候就会提示net::ERR_NAME_NOT_RESOLVED
,我想问问这是什么情况啊,我这个页面直接浏览器打开是可以成功打开的,好奇怪啊,是在调用之前 setCookie 有问题导致的吗
域名的问题,重设了一下域名,他可以了,但是一直提示超时 timeout 30000ms exceeded
,还是我直接浏览器打开就没有问题,想问问这个是为啥啊,url直接换成百度也不成,依旧提示这个
let browser = await puppeteer.launch({
headless: true,
ignoreHTTPSErrors: true,
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage'
],
executablePath: '/mnt/fun/fun/local-chromium/Linux-706915/chrome-linux/chrome'
});
const page = await browser.newPage();
//将超时时间设置成无限
page.setDefaultTimeout(0);
page.setDefaultNavigationTimeout(0);
//setCookie
console.log('设置token')
if (token && token !== '') {
await page.setCookie({ name: 'localtoken', value: token, domain: "."+domain })
};
await page.setCookie({ name: 'source', value: 'ali', domain: '.'+domain })
//启动网页尝试5次
let netErrorTime = 1;
for (var urlNumber = 1; urlNumber < 6; urlNumber++){
try {
console.log('访问url次数',urlNumber,':',url)
await page.goto(url, { waitUntil: 'domcontentloaded'});
break
}catch (e) {
console.log('打开url错误开始重试')
console.log(e)
if (urlNumber >= 5) {
console.log('打开url失败')
}
}
}
//设置监控
const tags = browser.pages()
console.log('标签页', (await tags).length)
const watchDog = page.waitForFunction('window.status == "loaded"', { timeout: 30 * 1000 });
await watchDog;
1
libook 2021-12-16 18:48:28 +08:00
去网上搜 net::ERR_NAME_NOT_RESOLVED
光看这个错误代码显然是 DNS 解析问题,可能你请求的 URL 有问题,域名没法正常解析,也有可能是你配置的 DNS 服务器有问题。 |
2
yunying 2021-12-16 19:50:54 +08:00
看起来是你访问页面的域名 dns 解析问题,所以你的应用放在哪运行?确保你应用及应用所在运行环境能访问这个网址。
|
4
v2byy 2021-12-17 17:05:11 +08:00
@aglsv hang 在 page.waitForFunction, [waitForFunction]( https://pptr.dev/#?product=Puppeteer&version=v11.0.0&show=api-pagewaitforfunctionpagefunction-options-args), 只有你得 function 是 true promise 才会 resolve 。
[window.status]( https://developer.mozilla.org/en-US/docs/Web/API/Window/status) 这个 API 已经 deprected 了,就不会 true 了。 你可以用浏览器打开看 window.status 是空的 |