2008-12-09 18 views
0

La seule méthode fiable que j'ai trouvée pour utiliser un script pour télécharger du texte depuis wikipedia est avec cURL. Jusqu'à présent, la seule façon de faire est d'appeler le os.system(). Même si la sortie apparaît correctement dans le shell python je ne peux pas sembler à la fonction de retourner autre chose que le code de sortie (0). Alternativement, quelqu'un pourrait montrer comment utiliser correctement urllib.Comment obtenir des données de stdin en utilisant os.system()

Répondre

7

De Dive into Python:

import urllib 
sock = urllib.urlopen("http://en.wikipedia.org/wiki/Python_(programming_language)") 
htmlsource = sock.read() 
sock.close() 
print htmlsource 

qui imprimera le code source de l'article Python Wikipedia. Je vous suggère de jeter un oeil à plonger dans Python pour plus de détails.

Exemple d'utilisation urllib2 de la Python Library Reference:

import urllib2 
f = urllib2.urlopen('http://www.python.org/') 
print f.read(100) 

Edit: Aussi, vous voudrez peut-être jeter un oeil à wget.
Edit2: exemple Ajouté urllib2 basé sur l'avis de S. Lott

+0

Merci, le construit dans le navigateur d'aide est presque jamais compréhensible. – GameFreak

+0

urllib2 fait presque la même chose, en plus il gère les choses comme des redirections plus gracieusement. –

+0

@ S.Lott Je suis d'accord. Je cherchais simplement une ressource à partir de laquelle GameFreak pourrait apprendre davantage, pas seulement copier du code, et il s'est avéré que la première ressource à laquelle je pensais, Dive into Python, utilisait urllib. – Sean

2

Répondre à la question, Python possède un module de sous-processus qui vous permet d'interagir avec les processus engendrés. http://docs.python.org/library/subprocess.html#subprocess.Popen

Il vous permet de lire la sortie standard pour le processus appelé, et même d'envoyer des éléments au stdin.

Cependant comme vous l'avez dit urllib est une bien meilleure option. si vous search stackoverflow je suis sûr que vous trouverez au moins 10 autres questions connexes ...