Уведомления

Группа в Telegram: @pythonsu

#1 Май 15, 2014 06:41:34

rizan
Зарегистрирован: 2014-05-15
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Скачать картинки

Здравствуйте!
Имею задание по учебе. С первой частью задания я справился сам.
Вторая часть звучит примерно так: “Имеется несколько URL, скачать с этих сайтов все картинки размером не менее…”

Задача решается при помощи wget, lynx, но хочется полностью на Python.
Подскажите библиотеку, которая может справится с этим?
При меры в интернете ни черта не работают, хочется по шагам разобраться, от подключения к сайту до получения картинок в папке на компе.

Офлайн

#2 Май 15, 2014 07:14:58

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Скачать картинки

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()

Офлайн

#3 Май 15, 2014 07:33:55

rizan
Зарегистрирован: 2014-05-15
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Скачать картинки

Проблема в том что я не знаю перечень сайтов, они каждый раз разные. Изучать пути к картинкам не имеет смысла. Нужно зная только домен, найти картинки. Думаю, что нужно искать по тегам img с атрибутом src.
Смогу ли я использовать вышеуказанное?

т.е. теоретически программа должна рекурсивно прогуляться по сайту и скачать все…

Отредактировано rizan (Май 15, 2014 07:35:05)

Офлайн

#4 Май 15, 2014 07:40:42

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Скачать картинки

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())

Офлайн

#5 Май 15, 2014 07:44:43

rizan
Зарегистрирован: 2014-05-15
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Скачать картинки

у меня установлена 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

Офлайн

#6 Май 15, 2014 07:46:31

rizan
Зарегистрирован: 2014-05-15
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Скачать картинки

Вроде как из за того, что на компе стояло 2 версии Python, но я все удалил, перезагрузил комп и установил 2.7, не момогло
может библиотеку старее установить?

Отредактировано rizan (Май 15, 2014 07:47:24)

Офлайн

#7 Май 15, 2014 07:46:52

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Скачать картинки

Работайте с grab, он все это умеет
P.S. а там просит доустановить модули

Отредактировано sanodin (Май 15, 2014 07:48:08)

Офлайн

#8 Май 15, 2014 07:48:05

rizan
Зарегистрирован: 2014-05-15
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Скачать картинки

Работайте с grab, он все это умеет
Хорошо, спасибо!
Пойду изучать и пробовать

Офлайн

#9 Май 15, 2014 08:09:18

rizan
Зарегистрирован: 2014-05-15
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Скачать картинки

Проблема с установкой

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

Офлайн

#10 Май 15, 2014 08:11:56

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Скачать картинки

установите setuptools
http://www.lfd.uci.edu/~gohlke/pythonlibs/

Отредактировано sanodin (Май 15, 2014 08:13:07)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version