使用python捕获wget错误

时间:2014-12-04 18:44:38

标签: python linux debian wget

我有一个脚本,它使用python和wget来下载一个网站,然后用这些文件执行一些任务。我使用行os.system("wget -m -w 2 -P " directory)来调用wget,以递归方式下载域中的每个页面。这样可以正常工作,但现在有必要监视wget在链接后跟踪文件时出错(尝试访问页面时出现404错误)。

这不是获取退出代码的问题,而是查看每个'块' wget提供的输出。

有没有一种简单的方法可以通过Python查看wget输出而无需将其重定向到文件,然后在文件中搜索标识的文本字符串?

2 个答案:

答案 0 :(得分:2)

如果你只想要退出代码,那么os.system()返回的是什么(警告:它是标准的linux进程退出代码,所以0表示'否错误'以及其他任何错误)。

如果您需要更详细的信息,您必须使用子流程模块(https://docs.python.org/2/library/subprocess.html#module-subprocess)将子流程的stderr传回您的Python代码。或者您可以使用Python而不是wget - 有很多基于Python的爬虫可用。

答案 1 :(得分:0)

据我所知,os.system返回命令的退出代码。

因此,以下内容应该有效:

code = os.system("wget -m -w 2 -P {}".format(directory)}
相关问题