Найти - Пользователи
Полная версия: Скачать картинки
Начало » Python для новичков » Скачать картинки
1 2 3 4
rizan
Здравствуйте!
Имею задание по учебе. С первой частью задания я справился сам.
Вторая часть звучит примерно так: “Имеется несколько URL, скачать с этих сайтов все картинки размером не менее…”

Задача решается при помощи wget, lynx, но хочется полностью на Python.
Подскажите библиотеку, которая может справится с этим?
При меры в интернете ни черта не работают, хочется по шагам разобраться, от подключения к сайту до получения картинок в папке на компе.
sanodin
import requests
url = "http://download.thinkbroadband.com/10MB.zip"
r = requests.get(url)
print len(r.content)
#10485760
import urllib
urllib.urlretrieve ("http://www.example.com/songs/mp3.mp3", "mp3.mp3")
import urllib2
mp3file = urllib2.urlopen("http://www.example.com/songs/mp3.mp3")
output = open('test.mp3','wb')
output.write(mp3file.read())
output.close()
еще Grab использовать
import sys
from grab import Grab
grab = Grab()
grab.go('http://gismetsan.appspot.com/get/10001')
with open('time.py', 'wb') as f:
    f.write(grab.response.body)
    f.close()
sys.exit()
rizan
Проблема в том что я не знаю перечень сайтов, они каждый раз разные. Изучать пути к картинкам не имеет смысла. Нужно зная только домен, найти картинки. Думаю, что нужно искать по тегам img с атрибутом src.
Смогу ли я использовать вышеуказанное?

т.е. теоретически программа должна рекурсивно прогуляться по сайту и скачать все…
sanodin
import sys, urllib, re, urlparse
from BeautifulSoup import BeautifulSoup
t=1
url = 'http://svn.wikimedia.org/viewvc/pywikipedia/archive/Before_multifamily_changes/pywikipedia/brackethttp.py?view=log'
f = urllib.urlopen(url)
soup = BeautifulSoup(f)
for i in soup.findAll('img', attrs={'src': re.compile('(?i)(jpg|png)$')}):
    full_url = urlparse.urljoin(url, i['src'])
    print "image URL: ", full_url
#urllib.urlretrieve('http://www.example.com/page', 'myfile.jpg')
    y = urllib.urlopen(full_url)
    t=t+1
    with open(str(t)+'.png' , "wb") as code:
        code.write(y.read())
rizan
у меня установлена BS4

по коду выше вот такая ерунда
C:\Users\USER\Desktop>1.py
Traceback (most recent call last):
File “C:\Users\USER\Desktop\1.py”, line 2, in <module>
from bs4 import BeautifulSoup
File “C:\Python27\lib\site-packages\bs4\__init__.py”, line 30, in <module>
from .builder import builder_registry, ParserRejectedMarkup
File “C:\Python27\lib\site-packages\bs4\builder\__init__.py”, line 4, in <modu
le>
from bs4.element import (
File “C:\Python27\lib\site-packages\bs4\element.py”, line 5, in <module>
from bs4.dammit import EntitySubstitution
File “C:\Python27\lib\site-packages\bs4\dammit.py”, line 11, in <module>
from html.entities import codepoint2name
ImportError: No module named html.entities
rizan
Вроде как из за того, что на компе стояло 2 версии Python, но я все удалил, перезагрузил комп и установил 2.7, не момогло
может библиотеку старее установить?
sanodin
Работайте с grab, он все это умеет
P.S. а там просит доустановить модули
rizan
Работайте с grab, он все это умеет
Хорошо, спасибо!
Пойду изучать и пробовать
rizan
Проблема с установкой
c:\Python27\dist\grab-0.4.13>setup.py install
Traceback (most recent call last):
File “C:\Python27\dist\grab-0.4.13\setup.py”, line 1, in <module>
from setuptools import setup, find_packages
ImportError: No module named setuptools

у меня Win8, пытаюсь в PowerSell

PS C:\Users\USER> (Invoke-WebRequest https://bootstrap.pypa.io/ez_setup.py).Content | python -
python : Имя “python” не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте пр
авильность написания имени, а также наличие и правильность пути, после чего повторите попытку.
строка:1 знак:69
+ (Invoke-WebRequest https://bootstrap.pypa.io/ez_setup.py).Content | python -
+ ~~~~~~
+ CategoryInfo : ObjectNotFound: (python:String) , CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
sanodin
установите setuptools
http://www.lfd.uci.edu/~gohlke/pythonlibs/
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB