Python - проверка wget после завершения процесса - PullRequest
0 голосов
/ 29 марта 2012

У меня есть функция, которая вызывает wget через subprocess.Popen. Целью этой функции является создание wget и создание паука на сайте для получения списка ссылок.

Можно ли сказать, когда завершился процесс 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 ]

1 голос
/ 30 марта 2012

Возможно, вы могли бы использовать subprocess.call или subprocess.check_call вместо этого?Они оба будут ждать завершения команды, а затем сообщат вам код возврата.

См. Документ здесь

0 голосов
/ 30 марта 2012

Почему вы хотите использовать подпроцесс, может быть лучше использовать urllib

import urllib

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