Я пытаюсь проверить статус веб-страницы с помощью Python. Я сделал таймеры для тестирования, но ничто не дает ничего лучше другого. Худшее и лучшее различаются всего на 20%. Мне действительно нужен только код ответа, а не исходный HTML. Я буду обрабатывать 3 кода ответа: 200, 403, 404.
Метод 1 принадлежит мне, но другие были найдены здесь: Проверка наличия веб-сайта вверх через Python
Метод 1. Сейчас я использую Mechanize, чтобы открыть URL-адрес с попыткой и исключением. Если это 200, он пройдет нормально, но если это 403/404, он запустит except. Это работает нормально, но не очень быстро. Средняя скорость 0.00276
Метод 2. Используя urllib, я получаю примерно то же время, что и python. Средняя скорость 0,00227. Вот код для этого, это всего лишь один лайнер.
print urllib.urlopen("http://www.stackoverflow.com").getcode()
Метод 3: я думаю, что этот метод httplib будет самым быстрым, но он проверяет только домены, он не проверяет отдельные страницы домена, поэтому в моем случае он не работал. Код для этого:
conn = httplib.HTTPConnection("www.python.org")
conn.request("HEAD", "/")
r1 = conn.getresponse()
print r1.status, r1.reason
Метод 4. В этом методе используется request.head, а его средняя скорость составляет 0,00246. Код такой:
r = requests.head("http://www.stackoverflow.com")
print r
Кто-нибудь знает более эффективный способ проверки статуса веб-страницы в python?