J'ai regardé tout autour de Google et de ses archives. Il y a plusieurs bons articles, mais aucun ne semble m'aider. J'ai donc pensé venir ici pour une réponse plus précise.
L'objectif: Je veux exécuter ce code sur un site Web pour obtenir tous les fichiers d'image à la fois. Cela vous épargnera beaucoup de pointage et de clic.
J'ai Python 2.3.5 sur un ordinateur Windows 7 x64. Il est installé dans C:\Python23.
Comment puis-je obtenir ce script pour "aller", pour ainsi dire?
====================================
SENSATIONNEL. 35k vues. En tant que résultat optimal sur Google, voici un lien utile que j'ai trouvé au fil des ans:
http://learnpythonthehardway.org/book/ex1.html
Pour la configuration, voir exercice 0.
====================================
FYI: Je n'ai aucune expérience avec Python. Tout avis sera le bienvenu.
Comme demandé, voici le code que j'utilise:
"""
dumpimages.py
Downloads all the images on the supplied URL, and saves them to the
specified output file ("/test/" by default)
Usage:
python dumpimages.py http://example.com/ [output]
"""
from BeautifulSoup import BeautifulSoup as bs
import urlparse
from urllib2 import urlopen
from urllib import urlretrieve
import os
import sys
def main(url, out_folder="C:\asdf\"):
"""Downloads all the images at 'url' to /test/"""
soup = bs(urlopen(url))
parsed = list(urlparse.urlparse(url))
for image in soup.findAll("img"):
print "Image: %(src)s" % image
filename = image["src"].split("/")[-1]
parsed[2] = image["src"]
outpath = os.path.join(out_folder, filename)
if image["src"].lower().startswith("http"):
urlretrieve(image["src"], outpath)
else:
urlretrieve(urlparse.urlunparse(parsed), outpath)
def _usage():
print "usage: python dumpimages.py http://example.com [outpath]"
if __== "__main__":
url = sys.argv[-1]
out_folder = "/test/"
if not url.lower().startswith("http"):
out_folder = sys.argv[-1]
url = sys.argv[-2]
if not url.lower().startswith("http"):
_usage()
sys.exit(-1)
main(url, out_folder)
Sur la plate-forme Windows, vous avez 2 choix:
Dans un terminal en ligne de commande, tapez
c:\python23\python xxxx.py
Ouvrez l'éditeur python IDLE dans le menu, ouvrez xxxx.py, puis appuyez sur F5 pour l'exécuter.
Pour votre code posté, l'erreur est à cette ligne:
def main(url, out_folder="C:\asdf\"):
CA devrait etre:
def main(url, out_folder="C:\\asdf\\"):
En général, vous pouvez double-cliquer sur le fichier .py
dans l'Explorateur Windows pour l'exécuter. Si cela ne fonctionne pas, vous pouvez créer un fichier de commandes dans le même répertoire avec le contenu suivant:
C:\python23\python YOURSCRIPTNAME.py
Puis double-cliquez sur ce fichier de commandes. Vous pouvez également simplement exécuter cette ligne dans l'invite de commande pendant que votre répertoire de travail correspond à l'emplacement de votre script.
Puisque vous semblez être sur Windows, vous pouvez le faire alors python <filename.py>
. Vérifiez que le dossier bin de python est dans votre PATH, ou vous pouvez faire c:\python23\bin\python <filename.py>
. Python est un langage d'interprétation et vous avez donc besoin de l'interpréteur pour exécuter votre fichier, tout comme vous avez besoin de Java Runtime pour exécuter un fichier jar.
use IDLE Editor {Vous l’avez peut-être déjà} il a un shell interactif pour python et il vous montrera l’exécution et le résultat.
Votre commande doit inclure le paramètre url indiqué dans les commentaires sur l'utilisation du script . La fonction principale comporte 2 paramètres, url et out (défini sur une valeur par défaut) C:\python23\python "C:\PathToYourScript\SCRIPT.py " http://yoururl.com " C:\OptionalOutput\"