1

Я написал простой скрипт для проверки URL, зависит от ошибки 404.HTTP меняется каждый раз, когда я запустить скрипт Python 2.7

Когда я запускаю скрипт на URL с 404 он действительно возвращает мне правильный ответ, однако иногда возвращает другой (503), я не понимаю, почему это происходит, я тестировал это на многих других URL-адресах, и результаты никогда не были согласованы. Кто-то будет таким и объяснит, почему мои результаты продолжают меняться, хотя фактический статус URL-адреса не получается?

Заранее спасибо за помощь

Я пытался использовать следующие модули:

URLLIB, urllib2, requets

Все они производятся те же самые противоречивые результаты.

Вот скрипты:

Я

import requests 

for url in ['https://www.amazon.es/gp/product/B00QTVL0T4']: 
    response = requests.get(url) 
    response.status_code 
    print(response) 

отклика [404] и реагирование [503] (неверно)

II

import urllib 

result='' 

#***** paste url into square bracket ****# 

for url in ["https://www.amazon.es/gp/product/B003ODEJZ2",'https://www.amazon.fr/gp/product/B01H801C9C']: 
    a=urllib.urlopen(url) 
    e=a.getcode() 
    if e==404: 
     result+=(url+" Error_404 "+"\n") 
    else: 
     result+=(url+" Link_OK "+"\n") 
print result 

III

import urllib2 
for url in ['https://www.amazon.es/gp/product/B003ODEJZ2','https://www.amazon.fr/gp/product/B01H801C9C','https://www.amazon.de/dp/B00B8PRE1Y']: 
    try: 
     connection = urllib2.urlopen(url) 
    except urllib2.HTTPError, e: 
     if e.getcode()==404: 
      print (url+" Error_404") 
     else: 
      print(url+" Link_Ok") 
+0

Я думаю, сервер может быть перегружен, и он может отбросить некоторые запросы, поэтому статус «503» в этом случае нормальный. – Andersson

ответ

1

Причина 503 Обычно «Сервис недоступен», что означает, что все, что обрабатывает ваш запрос, не может найти службу поддержки для предоставления ответа. Это может быть возвращено физическим или программным балансиром нагрузки (F5s, HAProxy и т. Д.), CDN (Fastly, Cloudflare и т. Д.) Или что-то вроде Apache или Nginx, которые работают, но не имеют соответствующего приложения для связи (для любой причины).

Поскольку URL-адреса в вашем примере являются URL-адресами Amazon, скорее всего, CDN возвращает 503.CDNs (как Fastly) используйте лак и лак будет возвращать 503 в следующих случаях:

  • Сервер бэкенд возвращал 503 так Varnish вперед его по
  • Сервер бэкенд возвращал ответ, который не был распознаваем

Некоторые другие времена CDN может возвращать 503:

  • КДС таймаут чтения от начала координат
  • КДС таймаут подключения к возникновению
  • КДС не может читать/писать о происхождении
  • Сервер происхождения отказал в связи с CDN
  • The CDN не может найти путь к происхождению
  • Происхождение имеет TLS
  • неправильно настроена

(И так себе многие другие проблемы)

так на самом деле, это не совсем возможно для нас, чтобы сказать вам, почему вы получаете 503. вы должны вникать в ре ответьте немного больше и посмотрите документацию вокруг этого.

+0

Большое спасибо sigmavirus24! Я проверю ответ более подробно. –

 Смежные вопросы

  • Нет связанных вопросов^_^