Я использую следующий код, чтобы вернуть статус URLURL Python Возвращает Метод возвращает статус 200, несмотря на то, что 404
import requests
answer = requests.get('http://www.website.com')
answer.status_code
>>>200
, который дает мне обратно 200.
Однако, веб-сайт должен возвращать 404.
answer.content
>>>b'<html><head>\r\n<title>404 Not Found</title>\r\n</head><body>\r\n<h1>Not Found</h1>\r\n<p>The requested URL index.php was not found on this server.</p>\r\n<hr>\r\n<address>Apache/2.2.22 (Linux) Server at Port <small onclick="document.getElementById(\'login\').style.display = \'block\';">80</small></address>\r\n</body></html><div id="login" style="display:none;"><pre align=center><form method=post>Password: <input type=password name=pass><input type=submit value=\'>>\'></form></pre></div>'
может кто-нибудь сказать мне, где несоответствие происходит от и как я могу это исправить, чтобы получить answer.status_code = 404, как результат, а не 200? У меня нет прямого доступа к серверу, но я могу попросить администратора.
Спасибо!
Это возможно что сайт, который вы извлекаете, возвращает статус 200, даже если возвращаемый контент имеет текст '404 Not Found' – JeremyK
Используйте другой инструмент, например curl с опцией -v, чтобы получить все заголовки и содержимое. Чтобы подтвердить, что заголовки не совпадают. Вероятно, 404 генерируется внутри php-кода, и этот код не правильно устанавливает код состояния. – Nath