Я просмотрел весь Google и его архивы. Есть несколько хороших статей, но ни одна из них, похоже, мне не помогла. Поэтому я решил обратиться сюда за более конкретным ответом.
Цель: Я хочу запустить этот код на сайте, чтобы получить все файлы картинок сразу. Это сэкономит много времени на наведение и нажатие.
У меня есть Python 2.3.5 на машине с Windows 7 x64. Он установлен в C:\Python23.
Как мне заставить этот скрипт "запуститься", так сказать?
=====================================
WOW. 35k views. Поскольку это лучший результат в Google, вот полезные ссылки, которые я нашел за многие годы:
http://learnpythonthehardway.org/book/ex1.html
Для настройки смотрите упражнение 0.
=====================================
FYI: У меня нет опыта работы с Python. Любой совет будет оценен по достоинству.
Как и просили, вот код, который я использую:
"""
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 __name__ == "__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)