Результат модуля запросов отличается между idle и code

#python #python-requests

#python #python-запросы

Вопрос:

Почему wayback machine не возвращает ответ с этим кодом? Что я пробовал: (1) python idle вернул обычный ответ. (2) status_code равен 200, и функция возвращает None .

 def wayback_search(url):
    res = requests.get("https://web.archive.org/cdx/search/cdx?url=%samp;showDupeCount=trueamp;output=json" % url,
                       headers = {'User-agent': 'Mozilla/5.0'})
    ### search in requests_module
    urllist = res.url.split('amp;')
    request_url = urllist[0][:-1]   'amp;'   urllist[1]   'amp;'   urllist[2]
    print('timestamps_url:', request_url)
    res = requests.get(request_url)
    
    if res.raise_for_status():
        cdx = res.json()
        print(res.url)
        print('cdx', cdx)

    res = requests.get("http://archive.org/wayback/available?url=%s" % url,
                       headers = {'User-agent': 'Mozilla/5.0'})
    if res.raise_for_status():
        cdx = res.json()
        print(res.url)
        print('cdx', cdx)
  

Возможно, обратный путь вообще не работает.

Комментарии:

1. что вы подразумеваете под «возвращением ответа»? что вы ожидаете от этого кода?

Ответ №1:

Я не вижу, где wayback_search вызывается функция. Кроме того, в функции нет оператора return . В python, когда в функции нет оператора return , он возвращается None .. Попробуйте вернуть то, что вы хотите

Кроме того, код внутри в if res.raise_for_status() идеале никогда не должен запускаться, потому res.raise_for_status() что возникает исключение.