Python Http, получение кода ответа от сервера - PullRequest
0 голосов
/ 02 июля 2018

Я хочу получить код ответа с веб-сервера, но иногда я получаю код 200, даже если страница не существует, и я не знаю, как с этим справиться.

Я использую этот код:

def checking_url(link):
    try:  
            link = urllib.request.urlopen(link)
            response = link.code
    except urllib.error.HTTPError as e:
            response =  e.code
    return response

Когда я проверяю такой сайт: https://www.wykop.pl/notexistlinkkk/

Он по-прежнему возвращает код 200, даже если страница не существует. Есть ли какое-то решение, чтобы справиться с этим?

Я нашел решение, теперь собираюсь проверить его на других сайтах Мне пришлось использовать http.client.

Ответы [ 2 ]

0 голосов
/ 02 июля 2018
import urllib2


thisCode = None 

try:
    i = urllib2.urlopen('http://www.google.com')
    thisCode = i.code
except urllib2.HTTPError, e:
    thisCode = e.code


print thisCode
0 голосов
/ 02 июля 2018

Вы получаете код ответа 200, поскольку проверяемый веб-сайт имеет автоматическое перенаправление. В указанном вами URL-адресе, даже если вы укажете несуществующую страницу, он автоматически перенаправит вас на домашнюю страницу, а не вернет код состояния 404. Ваш код работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...