javascript 在nodejs中检查页面是否被定制404

toe95027  于 2022-12-28  发布在  Java
关注(0)|答案(1)|浏览(189)

我想知道这个页面是否是404。404错误我的意思是,不是由浏览器显示,而是由网站本身- '自定义404页面'。如何检测这个页面是否是404。
See this image
点击“查看这张图片”,看到那张图片。那是github的404页,我怎么能检测到页面是否是404,就像这样。
我尝试了很多,但它不检测是否它的404页面或没有.相反,当我尝试与一个404页面,这是由浏览器本身显示,它已经检测到,但我不知道如何检测一个网站是否是404错误,其中有自定义404错误页面.

lawou6xi

lawou6xi1#

通过使用axios GET调用检查response error status来检查url。
代码

const axios = require('axios')

const getTest = async (url) => {
    try {
        const response = await axios.get(
            url,
            {
                headers: {
                    'Accept-Encoding': 'text/html; charset=utf-8',
                }
            }
        );
        return Promise.resolve(response.data);
    } catch (error) {
        return Promise.reject(error);
    }
};

url = 'https://roine.github.com/p1'
getTest(url)
    .then((result) => {
        console.log(JSON.stringify(result, null, 4));
    })
    .catch(error => {
        if(error.response.status == 404) {
            console.error(`This URL ${url} has 404 page`);
        }
    });

简单版本

const axios = require('axios')
url = 'https://roine.github.com/p1'
axios.get(url)
    .catch((error) => {
        if (error.response.status == 404) {
            console.error(`This URL ${url} has 404 page`);
        }
    });

结果

$ node test.js
This URL https://roine.github.com/p1 has 404 page

相关问题