>\ Python27 \ питон timeoutbugtest2.py
Попробуйте 0:
Запрос открытия MyURLOpener: http://bitcointalk.org [( 'Accept', '* / *'), ( 'User-Agent', 'SiteTruth.com сайт рейтинговой системы')]
Открыт OK.
Попробуйте 1:
Запрос открытия MyURLOpener: http://bitcointalk.org [( 'Accept', '* / *'), ( 'User-Agent', 'SiteTruth.com сайт рейтинговой системы')]
Открыт OK.
Попробуйте 2:
Запрос открытия MyURLOpener: http://bitcointalk.org [( 'Accept', '* / *'), ( 'User-Agent', 'SiteTruth.com сайт рейтинговой системы')]
Открыть FAILED: (»http://bitcointalk.org'U'HTTP ошибка - тайм-аут'.)
Ожидание 60 секунд, прежде чем повторить попытку.
Попробуйте 3:
Запрос открытия MyURLOpener: http://bitcointalk.org [( 'Accept', '* / *'), ( 'User-Agent', 'SiteTruth.com сайт рейтинговой системы')]
Открыт OK.
Попробуйте 4:
Запрос открытия MyURLOpener: http://bitcointalk.org [( 'Accept', '* / *'), ( 'User-Agent', 'SiteTruth.com сайт рейтинговой системы')]
Открыт OK.
Попробуйте 5:
Запрос открытия MyURLOpener: http://bitcointalk.org [( 'Accept', '* / *'), ( 'User-Agent', 'SiteTruth.com сайт рейтинговой системы')]
Открыть FAILED: (»http://bitcointalk.org'U'HTTP ошибка - тайм-аут'.)
Ожидание 60 секунд, прежде чем повторить попытку.
Попробуйте 6:
Запрос открытия MyURLOpener: http://bitcointalk.org [( 'Accept', '* / *'), ( 'User-Agent', 'SiteTruth.com сайт рейтинговой системы')]
Открыт OK.
Попробуйте 7:
Запрос открытия MyURLOpener: http://bitcointalk.org [( 'Accept', '* / *'), ( 'User-Agent', 'SiteTruth.com сайт рейтинговой системы')]
Открыт OK.
Попробуйте 8:
Запрос открытия MyURLOpener: http://bitcointalk.org [( 'Accept', '* / *'), ( 'User-Agent', 'SiteTruth.com сайт рейтинговой системы')]
Открыть FAILED: (»http://bitcointalk.org'U'HTTP ошибка - тайм-аут'.)
Ожидание 60 секунд, прежде чем повторить попытку.
Это продолжается до бесконечности - два успешно открывается, то тайм-аут, подождите 1 минуту, повторите.
Пока не ясно, что отличает эту игру. Браузеры, кажется, не вызвать его. Наш рейтинг сайта система делает, хотя. Когда он начинает рейтинг сайта, он делает несколько запросов ("example.com", "www.example.com", Запрос HTTPS, и т.д., проверяя переадресовывает и пытается найти входную дверь на площадку). Этого достаточно, чтобы вызвать это.
Любой связанный с сайтом, знают, что происходит, и то, что в пути к месту? Это может быть какой-то балансировка нагрузки или проблема брандмауэра.
Как вы связаться с людьми за "bitcointalk", так или иначе.
Код:
#
# Проверка SiteTruth URL тайм-аут ошибки.
#
импорт urlparse
импорт urllib2
время импорта
импорт кодировок
kuseragent = "SiteTruth.com система рейтинга сайта" # USER-AGENT отправлено при сканировании
kdefaultsockettimeout = 15,0 # позволяют столько времени секунд для тайм-аута сокета
# Класс InfoException - используется для исключения связанных с страницы или URL
#
# Использование: InfoException (URL, сообщения)
#
Класс InfoException (Exception):
"Информация от внешнего веб-сайта не как ожидалось"
Защиту __init __ (я, * арг): # Initializer
self.url = арг [0] # сохранить проблемного URL
self.errmsg = юникода (арг [1]) # сохранить проблемы
Исключение .__ INIT __ (я, арг) # инициализации родительского
Защиту __unicode __ (Я): # преобразовать в строку
сообщ = u'Problem со страницей "% s":% S «. % (Self.url, self.errmsg)
вернуться (MSG)
Защита открытый (изнаночный):
попробовать: только # улов "ошибка Unicode" в URL
Заголовки = { "Агент пользователя" : Kuseragent} # набор пользовательского агента
REQ = urllib2.Request (изнаночный, Отсутствует, заголовки) запрос # сборки
# Временное решение для Coyote точка балансировки нагрузки ошибки.
# Если последнее поле User-агент, и заканчивается "м" но не иначе содержать "м",
# Балансировки нагрузки Coyote Point отбросит пакет. Таким образом, мы добавим дополнительный заголовок
# Что на самом деле не нужно.
req.add_header ( 'Accept', '* / *') # добавлять ненужный заголовок
Распечатать("Открытие запроса MyURLOpener:% s% s" % (изнаночной, магнезии (req.header_items ()))) ## *** TEMP ***
Результат = urllib2.urlopen (REQ, Отсутствует, kdefaultsockettimeout) # сделать открытой
кроме UnicodeError: # плохое доменное имя синтаксиса в формате Unicode
поднять socket.gaierror ("Синтаксическая ошибка в имени домена") # Лакомство, как получить-адрес ошибку ошибка
кроме urllib2.HTTPError как сообщение:
поднять InfoException (изнаночной, u'HTTP ошибка -.% s»% (юникода (message.code)))
кроме urllib2.URLError как сообщение:
сообщение = GetAttr (сообщение, 'причина', сообщение) # использование "причина" если доступно"
поднять InfoException (изнаночной, 'ошибка HTTP -.% S' % (юникода (сообщение)))
возврат (результат) # возвращает результат открытого
#
# Основная программа
#
Защита основные ():
retrydelay = 60 # подождите 60 секунд, прежде чем повторить попытку
для попыток в диапазоне (100):
Распечатать("Попробуйте% D:" % (пытается,))
пытаться :
FD = открыт ("http://bitcointalk.org") # URL вызывает проблемы
Распечатать(" Открыт OK.")
fd.close ()
за исключением (InfoException, EnvironmentError,) как сообщение:
Распечатать(" Open FAILED:% s " % (Сообщение))
Распечатать("Ожидание% d секунд, прежде чем повторить попытку." % (Retrydelay,))
time.sleep (retrydelay)
главный()