我通过 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 是空的 |