Urllib2在独立运行时正常,但添加到cronjob后出错
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就能获取到系统中指定的环境变量了。