Urllib2在独立运行时正常,但添加到cronjob后出错

1 投票
1 回答
659 浏览
提问于 2025-04-17 15:35
url = "www.someurl.com"

request = urllib2.Request(url,header={"User-agent" : "Mozilla/5.0"})

contentString = urllib2.url(request).read()

contentFile = StringIO.StringIO(contentString)

for i in range(0,2):
    html = contentFile.readline()

print html

上面的代码在命令行中运行得很好,但如果我把它放到定时任务(cron job)里,就会出现以下错误:

  File "/usr/lib64/python2.6/urllib2.py", line 409, in _open
    '_open', req)
  File "/usr/lib64/python2.6/urllib2.py", line 369, in _call_chain
    result = func(*args)
  File "/usr/lib64/python2.6/urllib2.py", line 1186, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "/usr/lib64/python2.6/urllib2.py", line 1161, in do_open
    raise URLError(err)
urllib2.URLError: 

我在其他论坛上查看了一些建议并尝试过,但都没有用。

任何帮助都会非常感激。

1 个回答

1

crontab和命令行使用的环境变量不一样。

我通过添加这行代码解决了这个问题:*/15 * * * * . $HOME/.profile; /path/to/command。

这样一来,crontab就能获取到系统中指定的环境变量了。

撰写回答