2012-03-29 12 views
0

Ich habe eine Funktion, die wget über subprocess.Popen aufruft. Der Zweck dieser Funktion ist es, wget und spider eine Website für eine Liste von Links zu spawnen.Python - wget überprüfen, wenn der Prozess abgeschlossen ist

Ist es möglich zu sagen, wann der wget-Prozess abgeschlossen ist und dann den Rest der Python-Funktion, z.

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. 

Auch ist es eine bessere Methode eine Website von Spidern (und Weitergabe in Anmeldeinformationen) über Python anstatt Systemaufrufe zu machen?

Dank

Antwort

0

Warum Sie verwenden subprocess möchten, können urllib

import urllib 

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

Vielen Dank für die Antwort besser zu nutzen sein. Ich habe mit urlib2 eine Spinne geschrieben – ctdeveloper

1

Vielleicht haben Sie subprocess.call oder subprocess.check_call stattdessen verwenden könnte? Sie warten beide auf die Ausführung eines Befehls und geben Ihnen dann den Rückkehrcode.

See doc here

Verwandte Themen