Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何对使用404错误页的url上的请求生成404错误_Python_Python 3.x_Http Status Code 404_Urllib - Fatal编程技术网

Python 如何对使用404错误页的url上的请求生成404错误

Python 如何对使用404错误页的url上的请求生成404错误,python,python-3.x,http-status-code-404,urllib,Python,Python 3.x,Http Status Code 404,Urllib,我正在使用urllib.request从url下载,并使用try和except块处理404错误。但是有些站点使用自定义404页面,而不是抛出错误,urllib.request会考虑找到的资源,而except块无法处理适当的操作。我想知道当运行到自定义404页面时,是否有方法让请求知道何时找不到资源 编辑:为了弄清楚一点,http返回404页面的主体,状态为200 ok。遇到自定义404时,http响应的状态代码是什么?它可能返回为200 OK,而响应正文仅表示错误。是的,它返回200 OK,正文

我正在使用
urllib.request
从url下载,并使用
try
except
块处理404错误。但是有些站点使用自定义404页面,而不是抛出错误,
urllib.request
会考虑找到的资源,而
except
块无法处理适当的操作。我想知道当运行到自定义404页面时,是否有方法让请求知道何时找不到资源


编辑:为了弄清楚一点,http返回404页面的主体,状态为200 ok。

遇到自定义404时,http响应的状态代码是什么?它可能返回为200 OK,而响应正文仅表示错误。是的,它返回200 OK,正文为@Adam_92。在这种情况下,您必须解析响应正文以确定是否存在错误,因为200响应不会引发任何异常。@Adam_92解析正文不是一个好主意,由于不同的站点将具有不同类型的自定义404页面,如果站点返回错误时的200状态码,则必须解析响应正文以确定是否返回了错误。另一种选择是,假设您有一个成功的响应,尝试解析内容,如果解析失败,则假设存在HTTP错误并引发异常。