【问题标题】:How to check if website exist with puppeteer.?如何使用 puppeteer 检查网站是否存在?
【发布时间】:2019-05-03 06:01:52
【问题描述】:
const browser = await puppeteer.launch({args: ['--no-sandbox']});
const page = await browser.newPage();              
await page.goto('$url', {waitUntil: 'load', timeout: 0});
const cookies = await page._client.send('Network.getAllCookies');

我想检查是否可以使用提供的协议访问网站。

如果尝试使用http访问失败,需要检查是否可以使用https访问

可以和puppeteer一起做吗?

【问题讨论】:

  • 您真的想检查 HTTPS(在端口 443 上)是否可用,还是只是想再次使用“https”而不是“http”调用page.goto
  • 我想检查 https 是否可用然后点击 https 否则检查 http 是否可用

标签: puppeteer


【解决方案1】:

如果puppeteer 无法page.goto 一个页面,它会抛出一个错误,所以我建议捕获该错误然后更正课程:

try {
    await page.goto('$url', {waitUntil: 'load', timeout: 0});    
} catch(e) {
    console.log(e.message);
}

【讨论】:

  • 0 禁用超时 (docs)。 timeout0 无论如何都没有任何意义;)
  • @ThomasDondorf 哎呀,确实如此(在调试答案时,pptr 立即无法打开超时0 的页面导致暂时失效)
  • 可能为时已晚,但我想链接到类似的答案,该答案将提供正确的位置link。同样在我的解决方案中,我将错误视为 404,在其他情况下,如果未提供位置,则将其视为http://some.link.com。代码示例:const result = (res && res.headers && res.headers.location) || `http://${url}`;
猜你喜欢
  • 1970-01-01
  • 2011-10-06
  • 1970-01-01
  • 2013-05-22
  • 2012-07-16
  • 1970-01-01
  • 2020-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多