neitro
Авг. 10, 2015 12:09:24
Продолжаю изучать пайтон
Собственно вопрос пока больше теоретический:
На входе есть произвольный url адрес.
На выходе получить информацию о том рабочая ли страница или нет.
Естественно можно проверить состояние сайта - по коду ответа, но если был просрочен хостинг, например, или заблокирован, страница перенесена, ошибка 404.
На разных сайтах будут выдаваться совершенно различные варианты.
Алгоритм:
1) проверка на возвращаемый код
2) Если 200, то проверка на наличие ошибок
Есть такое подозрение, что для решения задачи нужно использовать что-то в виде нейронных сетей.
Ну или есть разработки аналогичные?
sander
Авг. 10, 2015 12:14:52
neitro
с каких пор что бы проверить код http-ответа нужны нейронные сети?
sander
Авг. 10, 2015 12:15:51
neitro
и 200 подразумевает отсутствие ошибок
4kpt_III
Авг. 10, 2015 14:34:31
neitroНейронные сети? Мать моя женщина…
Обязательно нейросети, ГА и нечеткая логика. Причем все сразу
А реально
sander правильно написал. Код ответа 200 подразумевает, что все (во всяком случае на сервере) прошло успешно. И если результат не ожидаемый, значит что-то в функции-отображении на сервере у Вас не так, хотя она и выполнилась без ошибок
neitro
Авг. 10, 2015 16:50:01
Видимо я не совсем корректно уточнил.
Ответ 200 - не означает, что сайт работает - это может быть ответ хостинга.
Т.е. да сайт работает - только сайта на нем нет.
Задача подразумевает отлов ситуаций
1) был просрочен хостинг
2) сайт заблокирован хостингом
3) страница перенесена
4) ошибка 404
5) Парковочная страница
Поэтому уточню алгоритм:
1) Проверка кода (должен вернуть 200)
2) Если ответ 200 - это еще не значит, что сраница - это страница сайта, а не парковочная, 404 и т.д.
Т.е. пример из практики: домен не успели продлить - вместо сайта висит заглушка. Выдает ответ сервера 200. Но сайта там нет.
Вариант 2-й страницы нет на этом сайте - выдает ошибку 404.
Собственно вопрос, как эти ошибки отлавливать?
ayb
Авг. 10, 2015 17:14:54
neitro
Вариант 2-й страницы нет на этом сайте - выдает ошибку 404.
>>> requests.get("http://google.com/dsj")
<Response [404]>
FishHook
Авг. 10, 2015 18:53:41
Задача подразумевает отлов ситуаций
1) был просрочен хостинг
2) сайт заблокирован хостингом
3) страница перенесена
4) ошибка 404
5) Парковочная страница
нереально
ну хотя бы, как вы собираетесь поступать с одностраничными сайтами? Я вам легко накидаю сайтик на ангуляре, об который ваша программа споткнется.
4kpt_III
Авг. 10, 2015 19:30:45
FishHook
Да накой здесь ангуляр. Можно с использованием обычного js это сделать… Идея в том, что эта задача изначально обречена на провал. Да и смысла в ней ноль.
PooH
Авг. 11, 2015 06:00:55
В сервисах контроля доступности сайта обычно используют поиск характерного для страницы текста. Если найден - считается, что страница отдана верно.
neitro
Авг. 11, 2015 14:12:55
PooH
обычно используют поиск характерного для страницы текста
Вот и я о том же подумал. Просто у различных хостингов эта информация отличается. Вот и вопрос как это сделать грамотнее - искать по куску кода. Ну не красиво же будет)