当脚本通过crontab启动时,Python请求会挂起

时间:2017-11-03 17:44:15

标签: linux python-3.x cron debian python-requests

我有一个Python脚本,它通过HTTP以json格式下载数据。如果我使用请求模块通过命令行运行脚本,则HTTP连接成功并且数据下载没有任何问题。但是当我尝试将脚本作为crontab作业启动时,HTTP连接会在一段时间后抛出超时。谁能告诉我这里发生了什么?我目前首先通过bash脚本下载数据,然后从该bash中运行Python脚本。但这是胡说八道!非常感谢你!

使用:3.6.1 | Anaconda自定义(64位)| (默认,2017年5月11日,13:09:58)\ n [GCC 4.4.7 20120313(红帽4.4.7-1)]

P.S。:我没有找到关于这个问题的任何帖子。如果在其他帖子上已有答案,请接受我的道歉。

这是我的代码的摘录。运行requests.get(url)时会超时:

try:
   response = requests.get(url)
   messages = response.json()["Messages"]
except requests.exceptions.Timeout:
   logging.critical("TIMEOUT received when connecting to HTTP server.")
except requests.exceptions.ConnectionError:
   logging.critical("CONNECTION ERROR received when connecting to HTTP server.")

1 个答案:

答案 0 :(得分:1)

我刚刚找到了问题的答案。我已经定义了正在使用的代理,然后在我的代码中使用它:

HTTP_PROXY="http://your_proxy:proxy_port"
PROXY_DICT={"http":HTTP_PROXY}

response = requests.get(url, proxies=PROXY_DICT)

参考:

Proxies with Python 'Requests' module

谢谢大家的理解。我想在发布之前我应该​​做一个彻底的搜索。遗憾。