首页 > 解决方案 > 请求模块的结果在空闲和代码之间是不同的

问题描述

为什么 Wayback 机器不使用此代码返回答案?我尝试了什么:(1)python idle 返回了一个正常的答案。(2) status_code 为 200,函数返回 None。

def wayback_search(url):
    res = requests.get("https://web.archive.org/cdx/search/cdx?url=%s&showDupeCount=true&output=json" % url,
                       headers = {'User-agent': 'Mozilla/5.0'})
    ### search in requests_module
    urllist = res.url.split('&')
    request_url = urllist[0][:-1] + '&' + urllist[1] + '&' + 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)

也许退路根本不起作用。

标签: pythonpython-requests

解决方案


我看不到函数在哪里wayback_search被调用。此外,函数中没有 return 语句。在python中,当函数中没有return语句时,它返回None..尝试返回你想要的

此外,理想情况下,内部的代码if res.raise_for_status()应该永远不会运行,因为res.raise_for_status()引发异常。


推荐阅读