找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 188|回复: 0

关于 puppeteer 的问题

[复制链接]

1091

主题

0

回帖

3307

积分

管理员

积分
3307
发表于 2023-12-8 09:46:52 | 显示全部楼层 |阅读模式
域名的问题,重设了一下域名,他可以了,但是一直提示超时 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;


去网上搜 net::ERR_NAME_NOT_RESOLVED光看这个错误代码显然是 DNS 解析问题,可能你请求的 URL 有问题,域名没法正常解析,也有可能是你配置的 DNS 服务器有问题。
看起来是你访问页面的域名 dns 解析问题,所以你的应用放在哪运行?确保你应用及应用所在运行环境能访问这个网址。
@yunying 确实是域名配置的问题,改了域名不提示这个报错了,但是他现在一直提示超时,搞不明白咋整
@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 是空的
@v2byy 确实如此,太感谢了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|张迁碑

GMT+8, 2024-10-31 19:24 , Processed in 0.108096 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表