Форум сайта python.su
0
Здравствуйте!
Имею задание по учебе. С первой частью задания я справился сам.
Вторая часть звучит примерно так: “Имеется несколько URL, скачать с этих сайтов все картинки размером не менее…”
Задача решается при помощи wget, lynx, но хочется полностью на Python.
Подскажите библиотеку, которая может справится с этим?
При меры в интернете ни черта не работают, хочется по шагам разобраться, от подключения к сайту до получения картинок в папке на компе.
Офлайн
31
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()
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()
Офлайн
0
Проблема в том что я не знаю перечень сайтов, они каждый раз разные. Изучать пути к картинкам не имеет смысла. Нужно зная только домен, найти картинки. Думаю, что нужно искать по тегам img с атрибутом src.
Смогу ли я использовать вышеуказанное?
т.е. теоретически программа должна рекурсивно прогуляться по сайту и скачать все…
Отредактировано rizan (Май 15, 2014 07:35:05)
Офлайн
31
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())
Офлайн
0
у меня установлена 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
Офлайн
0
Вроде как из за того, что на компе стояло 2 версии Python, но я все удалил, перезагрузил комп и установил 2.7, не момогло 
может библиотеку старее установить?
Отредактировано rizan (Май 15, 2014 07:47:24)
Офлайн
31
Работайте с grab, он все это умеет
P.S. а там просит доустановить модули
Отредактировано sanodin (Май 15, 2014 07:48:08)
Офлайн
0
Работайте с grab, он все это умеетХорошо, спасибо!
Офлайн
0
Проблема с установкой
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
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
Офлайн
31
установите setuptools
http://www.lfd.uci.edu/~gohlke/pythonlibs/
Отредактировано sanodin (Май 15, 2014 08:13:07)
Офлайн