Python - wget检查进程何时完成

时间:2012-03-29 19:51:48

标签: python wget

我有一个通过subprocess.Popen调用wget的函数。此函数的目的是为wget和spider一个网站生成一个链接列表。

是否可以判断wget进程何时完成,然后继续执行其余的python函数,例如。

def get_urls(url, uname, pword, output):
    subprocess.Popen (['wget', '-nd', '-r', '--user=', uname, '--password=', pword,  
    '--no-parent','--spider',url, '--output-file= ',output], stdout=subprocess.PIPE)

    #some method telling wget has finished writing to the output file, so continue

    foo = bar() #rest of function etc.

还有一种更好的方法是通过python而不是进行系统调用来抓取站点(并传入登录凭据)吗?

由于

2 个答案:

答案 0 :(得分:1)

也许您可以使用subprocess.callsubprocess.check_call代替?他们都会等待命令完成,然后给你返回代码。

请参阅文档here

答案 1 :(得分:0)

为什么要使用子进程,可能更好用urllib

import urllib

url = 'http:......'
filename = 'your_filename'
urllib.urlretrieve(url, filename)