python - 请求模块的结果在空闲和代码之间是不同的
问题描述
为什么 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)
也许退路根本不起作用。
解决方案
我看不到函数在哪里wayback_search
被调用。此外,函数中没有 return 语句。在python中,当函数中没有return语句时,它返回None
..尝试返回你想要的
此外,理想情况下,内部的代码if res.raise_for_status()
应该永远不会运行,因为res.raise_for_status()
引发异常。
推荐阅读
- python - TensorFlow 在训练或验证时给出错误“InvalidArgumentError:输入为空”
- java - 尝试运行单元测试功能时 IntelliJ 出错
- reactjs - history.push 不是函数
- r - 在 for 循环中重新编码几个变量
- python-3.x - Pandas 优化了值的查找
- php - 如何在国家下拉列表中显示选定的值
- extjs - 应用程序崩溃:Java 运行时环境检测到致命错误:[libsystem_platform.dylib+0x15d2] _platform_strlen+0x12
- java - Corretto 11 上的 AWS Elastic Beanstalk Tomcat 8.5 无法连接到 AWS 服务
- visual-studio - 如何为 WinForms 桌面应用程序的 URL 安装托管 MSIX 包
- python - XML 属性值无法匹配我的另一个字典的键,因此我无法替换属性值