Я использую сценарий this для загрузки изображений с одной и той же страницы html. Но если изображения достаточно большие, этот скрипт не загружается должным образом - все изображения 1,15 КБ и не отображаются. Как я могу это исправить? что не так?Сценарий не загружает большие изображения
ответ
Если вы загружаете и проверить HTML в http://tema.ru/travel/new-york.2011.11/, вы видите вещи, как
<img src="IMG_5072.jpg" alt="" width="1000" height="667" border="1" />
Так эта страница с использованием относительных ссылок.
Линия
parsed[2] = image["src"]
изменения parsed
от
['http', 'tema.ru', '/travel/new-york.2011.11/', '', '', '']
в
['http', 'tema.ru', 'IMG_5072.jpg', '', '', '']
, а затем формирует новый URL с
url = urlparse.urlunparse(parsed)
, который устанавливает url
в http://tema.ru/IMG_5072.jpg
который не существует. Правильный адрес: http://tema.ru/travel/new-york.2011.11/IMG_5072.jpg
.
Мы можем сформировать этот URL с
url = urlparse.urljoin(base_url,image['src'])
поэтому попробуйте
"""
http://stackoverflow.com/a/258511/190597
Author: Ryan Ginstrom
dumpimages.py
Downloads all the images on the supplied URL, and saves them to the
specified output file ("/tmp" by default)
Usage:
python dumpimages.py http://example.com/ [output]
"""
import os
import sys
import urllib
import urllib2
import urlparse
import argparse
import BeautifulSoup
def main(base_url, out_folder):
"""Downloads all the images at 'url' to out_folder"""
soup = BeautifulSoup.BeautifulSoup(urllib2.urlopen(base_url))
for image in soup.findAll("img"):
src = image['src']
print "Image: {s}".format(s=src)
_, filename = os.path.split(urlparse.urlsplit(src).path)
outpath = os.path.join(out_folder, filename)
url = urlparse.urljoin(base_url, src)
urllib.urlretrieve(url, outpath)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('url')
parser.add_argument('out_folder', nargs = '?', default = '/tmp')
args = parser.parse_args()
main(args.url, args.out_folder)
Вы можете полностью оставить ветку в 'main'. 'urljoin (" http://example.org/test.png "," http://google.com/test.png ") ==" http://google.com/test.png "' –
Отлично. Спасибо! – unutbu
Я скопировал и вставил ваш код. он не работал! IOError [errno 2] нет такого файла или каталога: u '/tmp\\arr.gif' – DrStrangeLove
- 1. Как браузер загружает изображения? Большие пальцы нужны?
- 2. IE11 не загружает большие изображения. говорит сценарий 14: недостаточно для хранения этой операции
- 3. Сайт web2py не загружает все изображения/видеоролики (особенно большие)
- 4. Extjs Сетка не загружает большие данные
- 5. Web2py загружает большие файлы ssl не удается
- 6. CKFinder не загружает изображения
- 7. IE не загружает изображения
- 8. хром не загружает изображения
- 9. Recyclerview не загружает изображения
- 10. iCarousel не загружает изображения
- 11. Instafeed.js не загружает изображения
- 12. WebView не загружает изображения
- 13. ImageIO не загружает изображения
- 14. scrapy не загружает изображения
- 15. iPad не загружает изображения
- 16. ionic не загружает изображения
- 17. Glide не загружает изображения
- 18. Webapp не загружает изображения
- 19. IE не загружает изображения
- 20. Picasso не загружает изображения
- 21. AmCharts не загружает изображения/SVG
- 22. AsyncFileUpload не принимает большие изображения
- 23. Не удается загрузить большие изображения
- 24. Android sdk Редактировать большие изображения
- 25. Сценарий не загружает файлы на мой сервер
- 26. HTML5 сценарий загрузки файлов не загружает файл
- 27. angularjs - контроллер не загружает мой сценарий
- 28. webview.loadData() не загружает локальные изображения
- 29. jquery lightbox не загружает изображения
- 30. layzr.js не загружает последние изображения
Вы можете разместить пример страницы, где происходит проблема? –
Как пример URL-адреса, с которым работает скрипт? –
http://tema.ru/travel/new-york.2011.11/ – DrStrangeLove